Git maintainer Junio C. Hamano has announced the availability of version 2.25 of the source control system, which mainly comes with reworked internals and facilitated sparse checkouts.
The latter has been an option before, but a dedicated sparse-checkout command was added to improve the process. With a sparse checkout, users can choose the file path patterns they want their working copy content to be checked out from, which makes it similar to .gitignore. The new command can enable or disable this feature and of course includes set and list commands for setting and listing the paths that should be checked out.
Git’s command to show commit logs has received some love and has not only had its –graph option refactored but was also fitted with a –pretty=reference format. It also comes with a new placeholder for –format. l/L fills in the part of an email address to the left side of the @ and could therefore be useful for internal repositories where all committers share the domain part of their address.
Users having trouble with figuring out object enumeration can now learn the ins and outs of that topic in a tutorial. Those working with Elixir will be happy to hear that starting with Git 2.25, the tool is able to detect function boundaries in that language, while Pythonistas will run into less trouble since userdiff knows how to handle async def now.
Internally, the debugging support for lazy cloning has been improved and preparations for the transition to SHA-2 have been advanced. Also, the rewriting of git add -i in C has begun, which reduces Perl dependencies. To prevent git rebase –rebase-merge causing errors, its logic was slightly tweaked so that it only comes up with usable labels.
In terms of performance some minor changes like the reduction of state variable reads during sequencer operations, adjustments to git push, and a redo of git name-rev to avoid recursive calls were introduced for additional smoothness. A full list of improvements and fixes can be found in the release announcement on the Git mailing list.
Git was initially developed by Linux kernel creator Linus Torvalds and is a popular choice when it comes to version control systems, partly because of offerings such as GitHub. Despite (or because?) of its age of about 14 years, it still manages to convince major projects to migrate their code. Just last weekend, popular compiler project GCC (pretty much) completed its move from SVN to Git, after years of back and forth.