Git 2.25 Released

January 13, Git development team released the latest Git 2.25. Git is a distributed version control system.

Git 2.25 is the latest stable version, following Git 2.24, which was released in 2019 November. It is reported that there were in total 583 commits from 84 contributors.

Git sparse-checkout command is a new experimental feature that partially checkouts repositories. Before this you could checkout a certain directory or file by preparing a configuration file, but now you can handle this similarly by using a command line to assign a pattern that specifies a target. There is also a new subcommand called “git sparse-checkout list”, which outputs files that match the pattern.

Other new features to note are “―notes=<ref>” and “―no-notes” options, which control the comparison against the commit notes in “git range-diff” command, and “―pretty=reference” option in “git log” family command. Also, “git submodule” learned a new subcommand “set-url”. Some of the commands can take pathspec via standard input or a named file, without using the “―pathspec-from-file” option.

“git rebase ―preserve-merges” command, which preserves the branch structure of the repository during the rebase, is deprecated, and instead, now recommend is the “―rebase-merges” option, which was introduced in v2.2.

Now you can insert branch description that can be edited with “git branch ―edit-description” into a patch created with “git format-patch”. Also introduced is the indicator that shows the progress of some of the multi-pack-index functionalities. Improvement added to FreeBSD is the support for CI via Cirrus-CI support.

The patterns to detect function boundary for Elixir has been added, and the issue of not outputting errors when “git rev-parse ―show-toplevel” was executed outside the working tree has been fixed.

One of the changes added internally is that they started rewriting “-i” option for “git add” command from Perl base to C. They continue with the test updates to prepare for transitioning to SHA-2. Debug support for “lazy cloning” has been enhanced. Also improved is the performance of the git push to repository.

There are many other improvements and fixes to provide better usability and performance.