Language Selection

English French German Italian Portuguese Spanish

Git v2.24.0

Filed under
Development
Software
The latest feature release Git v2.24.0 is now available at the
usual places.  It is comprised of 544 non-merge commits since
v2.23.0, contributed by 78 people, 21 of which are new faces.

The tarballs are found at:

    https://www.kernel.org/pub/software/scm/git/

The following public repositories all have a copy of the 'v2.24.0'
tag and the 'master' branch that the tag points at:

  url = https://kernel.googlesource.com/pub/scm/git/git
  url = git://repo.or.cz/alt-git.git
  url = https://github.com/gitster/git

New contributors whose contributions weren't in v2.23.0 are as follows.
Welcome to the Git development community!

  Alexandr Miloslavskiy, Ali Utku Selen, Ben Milman, Cameron
  Steffen, CB Bailey, Christopher Diaz Riveros, Garima Singh,
  Hervé Beraud, Jakob Jarmar, kdnakt, Kunal Tyagi, Maxim
  Belsky, Max Rothman, Norman Rasmussen, Paul Wise, Pedro Sousa,
  Philip.McGraw, Pratyush Yadav, Thomas Klaeger, William Baker,
  and YanKe.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Adam Roben, Ævar Arnfjörð Bjarmason, Alessandro Menti,
  Alexander Shopov, Alex Henrie, Andrey Mazo, Beat Bolli, Ben
  Wijen, Bert Wesarg, Birger Skogeng Pedersen, brian m. carlson,
  Carlo Marcelo Arenas Belón, Christian Couder, Clément Chigot,
  Corentin BOMPARD, David Turner, Denton Liu, Derrick Stolee,
  Elijah Newren, Emily Shaffer, Eric Wong, Gabriele Mazzotta,
  Jean-Noël Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes
  Schindelin, Johannes Sixt, Jonathan Tan, Jon Simons, Jordi Mas,
  Josh Steadmon, Junio C Hamano, Martin Ågren, Masaya Suzuki,
  Matheus Tavares, Matthew DeVore, Matthias Rüster, Michael
  J Gruber, Mike Hommey, Mischa POSLAWSKY, Paul Mackerras,
  Peter Krefting, Phillip Wood, René Scharfe, Robert Luberda,
  Stephen Boyd, Stephen P. Smith, Sun Chao, SZEDER Gábor,
  Tanay Abhra, Taylor Blau, Thomas Gummerer, Tobias Klauser,
  Torsten Bögershausen, Trần Ngọc Quân, and Varun Naik.

----------------------------------------------------------------

Git 2.24 Release Notes
======================

Updates since v2.23
-------------------

Backward compatibility note

 * "filter-branch" is showing its age and alternatives are available.
   From this release, we started to discourage its use and hint
   people about filter-repo.

UI, Workflows & Features

 * We now have an active interim maintainer for the Git-Gui part of
   the system.  Praise and thank Pratyush Yadav for volunteering.

 * The command line parser learned "--end-of-options" notation; the
   standard convention for scripters to have hardcoded set of options
   first on the command line, and force the command to treat end-user
   input as non-options, has been to use "--" as the delimiter, but
   that would not work for commands that use "--" as a delimiter
   between revs and pathspec.

 * A mechanism to affect the default setting for a (related) group of
   configuration variables is introduced.

 * "git fetch" learned "--set-upstream" option to help those who first
   clone from their private fork they intend to push to, add the true
   upstream via "git remote add" and then "git fetch" from it.

 * Device-tree files learned their own userdiff patterns.
   (merge 3c81760bc6 sb/userdiff-dts later to maint).

 * "git rebase --rebase-merges" learned to drive different merge
   strategies and pass strategy specific options to them.

 * A new "pre-merge-commit" hook has been introduced.

 * Command line completion updates for "git -c var.name=val" have been
   added.

 * The lazy clone machinery has been taught that there can be more
   than one promisor remote and consult them in order when downloading
   missing objects on demand.

 * The list-objects-filter API (used to create a sparse/lazy clone)
   learned to take a combined filter specification.

 * The documentation and tests for "git format-patch" have been
   cleaned up.

 * On Windows, the root level of UNC share is now allowed to be used
   just like any other directory.

 * The command line completion support (in contrib/) learned about the
   "--skip" option of "git revert" and "git cherry-pick".

 * "git rebase --keep-base <upstream>" tries to find the original base
   of the topic being rebased and rebase on top of that same base,
   which is useful when running the "git rebase -i" (and its limited
   variant "git rebase -x").

   The command also has learned to fast-forward in more cases where it
   can instead of replaying to recreate identical commits.

 * A configuration variable tells "git fetch" to write the commit
   graph after finishing.

 * "git add -i" has been taught to show the total number of hunks and
   the hunks that has been processed so far when showing prompts.

 * "git fetch --jobs=<n>" allowed <n> parallel jobs when fetching
   submodules, but this did not apply to "git fetch --multiple" that
   fetches from multiple remote repositories.  It now does.

 * The installation instruction for zsh completion script (in
   contrib/) has been a bit improved.


Performance, Internal Implementation, Development Support etc.

 * The code to write commit-graph over given commit object names has
   been made a bit more robust.

 * The first line of verbose output from each test piece now carries
   the test name and number to help scanning with eyeballs.

 * Further clean-up of the initialization code.

 * xmalloc() used to have a mechanism to ditch memory and address
   space resources as the last resort upon seeing an allocation
   failure from the underlying malloc(), which made the code complex
   and thread-unsafe with dubious benefit, as major memory resource
   users already do limit their uses with various other mechanisms.
   It has been simplified away.

 * Unnecessary full-tree diff in "git log -L" machinery has been
   optimized away.

 * The http transport lacked some optimization the native transports
   learned to avoid unnecessary ref advertisement, which has been
   corrected.

 * Preparation for SHA-256 upgrade continues in the test department.
   (merge 0c37c41d13 bc/hash-independent-tests-part-5 later to maint).

 * The memory ownership model of the "git fast-import" got
   straightened out.

 * Output from trace2 subsystem is formatted more prettily now.

 * The internal code originally invented for ".gitignore" processing
   got reshuffled and renamed to make it less tied to "excluding" and
   stress more that it is about "matching", as it has been reused for
   things like sparse checkout specification that want to check if a
   path is "included".

 * "git stash" learned to write refreshed index back to disk.

 * Coccinelle checks are done on more source files than before now.

 * The cache-tree code has been taught to be less aggressive in
   attempting to see if a tree object it computed already exists in
   the repository.

 * The code to parse and use the commit-graph file has been made more
   robust against corrupted input.

 * The hg-to-git script (in contrib/) has been updated to work with
   Python 3.

 * Update the way build artifacts in t/helper/ directory are ignored.

 * Preparation for SHA-256 upgrade continues.

 * "git log --graph" for an octopus merge is sometimes colored
   incorrectly, which is demonstrated and documented but not yet
   fixed.

 * The trace2 output, when sending them to files in a designated
   directory, can populate the directory with too many files; a
   mechanism is introduced to set the maximum number of files and
   discard further logs when the maximum is reached.

 * We have adopted a Code-of-conduct document.
   (merge 3f9ef874a7 jk/coc later to maint).

Read more

Also: Highlights from Git 2.24

Git 2.24 Released

  • Git 2.24 Released With Commit Graphs By Default, Adoption Of Contributor Covenant

    Released earlier this week was Git 2.24, which pardon for not punctually covering due to being extra busy this week, but this revision control system update is nevertheless an interesting update.

    Git 2.24 ships with commit graphs enabled by default after being experimental for recent releases. Git commit graphs by default accelerate the walking of the commit graph used for listing/filtering history and computing merge bases. This should yield a significant performance boost for relevant operations of such walks.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

More in Tux Machines

Games: Half-Life: Alyx, Serial Cleaner, BATTLETECH Heavy Metal

  • Set between Half-Life and Half-Life 2, Valve have now properly announced Half-Life: Alyx (updated)

    Half-Life: Alyx, the first Half-Life title in far too long has now been officially revealed with the Steam store page for it now available and you can also pre-purchase. However, their email clearly stated that Half-Life: Alyx will be "Free for owners of the Valve Index VR headset". This is a title built from the ground up for Virtual Reality, so only those with a VR kit will be able to play. Valve said it has "all of the hallmarks of a classic Half-Life game" including exploration, puzzle solving, visceral combat and a story that connects it all together with the Half-Life universe. Valve also said it will be compatible with "all PC-based VR headsets", it's powered by their own Source 2 game engine and it will release in March 2020.

  • Humble are giving away Serial Cleaner free for their Fall Sale now live

    You have around 72 hours to grab Serial Cleaner completely free, along with the start of the Humble Store Fall Sale. As always, there's tons of titles on sale. Plenty of indie games, plus multiple publishers have all put their games up with big discounts on them too.

  • BATTLETECH Heavy Metal has firmly stomped its way to release

    BATTLETECH Heavy Metal, the latest expansion to the turn-based strategy game that has you fight with massive lumbering 'mechs is out now. We've been told this is the definitive expansion, so it's likely to be the last as Harebrained Schemes move onto their next game. Quite an exciting expansion though and the naming of the expansion is very on point, since it comes with a bunch of classic 'mech designs from the original ​BATTLETECH​ board game plus a new 'mech designed just for Heavy Metal.

Top 10 Best Linux Video Editing Software

If you aspire to become a professional video editor but hate the idea of switching to a different operating system just to use video editing software, we have good news for you: Linux has many fantastic video editing software applications that let you easily edit videos right in your favorite Linux environment. What’s great about most Linux video editing software applications is that they tend to be free and open source, which means that anyone can peek under the hood and implement new features or fix bugs. The video editors featured in this article are loosely arranged according to their popularity, but we recommend you go through the entire list because even less popular video editors have a lot to offer. Read more

Android Leftovers

A Look At The GCC Compiler Tuning Performance Impact For Intel Ice Lake

For those wondering if it's worthwhile for performance recompiling your key Linux binaries with the microarchitecture instruction set extensions and tuning for Ice Lake, here are some GCC compiler benchmarks looking at that impact for the Core i7 1065G7 on the Dell XPS 7390. In particular, this article is looking at the affect on generated benchmark binaries when built under the following CFLAGS/CXXFLAGS configurations: -O3 -march=skylake - Just optimizing for conventional Skylake processors. -O3 -march=skylake-avx512 - Optimizing for Skylake AVX-512 processors like Skylake-SP/Skylake-X. The Skylake AVX-512 enables use of the AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ and AVX512CD instructions. -O3 -march=icelake-client - Optimizing for Icelake client/desktop processors. New instructions exposed here not found with Skylake/Skylake-AVX512 include AVX512VBMI, AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ, AVX512BITALG, AVX512VNNI, VPCLMULQDQ, and VAES. Note there is also the "icelake-server" target for future Ice Lake Xeon Scalable processors where additionally PCONFIG and WBNOINVD are flipped on. Read more