De ontwikkelaars achter Git hebben versie 2.49.0 van hun software uitgebracht. Met Git kunnen onder andere software- en projectontwikkelaars beheer en versiecontrole over data en broncode uitvoeren. Het programma kan worden gezien als een concurrent voor Subversion of Mercurial. Het heeft onder andere complete branching- en mergingfuncties en wordt onder de GPLv2 uitgegeven. De complete changelog voor deze uitgave is hier te vinden; dit zijn de belangrijkste veranderingen en verbeteringen:
UI, Workflows & FeaturesPerformance, Internal Implementation, Development Support etc.
- Completion script updates for zsh
- "git pack-objects" and its wrapper "git repack" learned an option to use an alternative path-hash function to improve delta-base selection to produce a packfile with deeper history than window size.
- "git gc" learned the "--expire-to" option and passes it down to underlying "git repack".
- "[help] autocorrect = 1" used to be a way to say "please wait for 0.1 second after suggesting a typofix of the command name before running that command"; now it means "yes, if there is a plausible typofix for the command name, please run it immediately".
- "git clone" learned to make a shallow clone for a single commit that is not necessarily be at the tip of any branch.
- Lazy-loading missing files in a blobless clone on demand is costly as it tends to be one-blob-at-a-time. "git backfill" is introduced to help bulk-download necessary files beforehand.
- "git push --atomic --porcelain" used to ignore failures from the other side, losing the error status from the child process, which has been corrected.
- "git rev-list --missing=" learned to accept "print-info" that gives known details expected of the missing objects, like path and type.
- Comes with an updated "gitk".
- The documentation of "git commit" and "git rebase" now refer to commit titles as such, not "subject".
- The value of "uname -s" is by default sent over the wire as a part of the "version" capability.
- "git refs migrate" can optionally be told not to migrate the reflog.
- The netrc support (via the cURL library) for the HTTP transport has been re-enabled.
- Removal of ".git/branches" and ".git/remotes" support in the BreakingChanges document has been further clarified.
- What happens to submodules during merge has been documented in a bit more detail.
- More -Wsign-compare fixes.
- meson-based build now supports the unsafe-sha1 build knob.
- The meson-based build procedure covers contrib/ and other places as well.
- The code to check LSan results has been simplified and made more robust. (merge 164a2516eb jk/lsan-race-ignore-false-positive later to maint).
- More code paths have a repository passed through the callchain, instead of assuming the primary the_repository object.
- Move a few more unit tests to the clar test framework.
- Introduce a new API to visit objects in batches based on a common path, or by type.
- Following the procedure we established to introduce breaking changes for Git 3.0, allow an early opt-in for removing support of $GIT_DIR/branches/ and $GIT_DIR/remotes/ directories to configure remotes.
- The code paths to interact with zlib has been cleaned up in preparation for building with zlib-ng.
- Foreign language interface for Rust into our code base has been added.
- All the documentation .txt files have been renamed to .adoc to help content aware editors.
- "git difftool" code clean-up.
- Rename processing in the recursive merge backend has seen a micro optimization.
- The path.[ch] API takes an explicit repository parameter passed throughout the callchain, instead of relying on the_repository singleton instance.
- Large-object promisor protocol extension has been introduced.
- The editorconfig file is updated to tell us that bash scripts are similar to general Bourne shell scripts.
- Meson-based build procedure forgot to build some docs, which has been corrected.