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: Baba, Dicey Dungeons, Factorio and Enabling GameMode

  • Excellent rule-changing puzzle game Baba Is You is getting an official level editor

    Baba Is You, the truly excellent puzzle game where you have to break the rules of each level to beat them is getting a big update soon. See Also: previous thoughts on it here. How do you break these rules? Well, on each level there's logic blocks you can push around to change everything. Turn yourself into a rock, a jellyfish, make it so touching a wall wins instead of a flag you can't access and all kinds of really crazy things it becomes quite hilarious.

  • Dicey Dungeons outsold Terry Cavanagh's last two Steam games in the first month

    Terry Cavanagh, the indie developer behind VVVVVV, Super Hexagon and the latest Dicey Dungeons has a new blog post out talking about how well Dicey Dungeons has done and what's to come next. Leading up to the release, Cavanagh was doing a blog post each day for seven days. This latest post from yesterday then, is long overdue considering Dicey Dungeons launched in August.

  • Factorio is leaving Early Access in September next year

    As a result of the team behind Factorio feeling like it's going on for too long, they've now set a proper release date. In their latest Friday Facts update, they mentioned how their "when it's done" approach has served them well to create a high-quality game "but if we continued this way, we would be doing it basically forever". Part of the issue is that they want to work on new features and add content, instead of constant polishing. So they're setting a date publicly now "so we have to stick with it". With that in mind, it's going to leave Early Access on September 25, 2020. Development is not ending once they hit the big 1.0, they also don't want to say it's 100% finished either. Like a lot of games, as long as the money keeps coming in they will likely keep adding to it.

  • Enabling GameMode on Linux for best gaming performance

Red Hat Enterprise Linux and CentOS Now Patched Against Latest Intel CPU Flaws

After responding to the latest security vulnerabilities affecting Intel CPU microarchitectures, Red Hat has released new Linux kernel security updates for Red Hat Enterprise Linux 6 and Red Hat Enterprise Linux 7 operating systems to address the well-known ZombieLoad v2 flaw and other issues. The CentOS community also ported the updates for their CentOS Linux 6 and CentOS Linux 7 systems. The security vulnerabilities patched in this new Linux kernel security update are Machine Check Error on Page Size Change (IFU) (CVE-2018-12207), TSX Transaction Asynchronous Abort (TAA) (CVE-2019-11135), Intel GPU Denial Of Service while accessing MMIO in lower power state (CVE-2019-0154), and Intel GPU blitter manipulation that allows for arbitrary kernel memory write (CVE-2019-0155). Read more

Android Leftovers

Firefox vs. Chrome Browser Performance On Intel Ice Lake + Power/Memory Usage Tests

Using Firefox 70 (including WebRender) and Google Chrome 78, here are our latest round of Linux web browser benchmarks tested on the Dell XPS Ice Lake laptop. Making this round of Linux browser benchmarking more interesting is also including power consumption and RAM usage metrics for the different browser benchmarks. For those wondering about whether Firefox or Chrome makes the most sense for Linux laptops, these benchmarks from the Dell XPS with Intel Core i7-1065G7 will hopefully be useful. Ubuntu 19.10 with the Linux 5.3 kernel was running on this Intel Ice Lake laptop while using the official builds of Mozilla Firefox 70.0 (both out of the box and with WebRender) and Google Chrome 78. The AC system power consumption was monitored on battery and the total RAM usage was being monitored throughout testing as well. All of the benchmarking was carried out using the Phoronix Test Suite. Read more