What’s old is new: Git 2.27 steps back from recently promoted transport protocol


Git 2.27 has arrived with added bug reporting and command enhancements, but also sees the team behind the version control system changing its mind on the recently promoted transport protocol.

Due to “some remaining rough edges” transport protocol v2 has been demoted from being the default in version 2.27, a status it was only awarded in Git 2.26. The change is part of a whole batch of under the hood adjustments meant to keep things running smoothly. The Git team, for example, enhanced its test suite with some usability improvements and revisions to Windows-specific elements and those having to deal with shell-related issues.

Git 2.27 is also the first version of the version control system that comes with its own bug report tool. Its output is said to combine kernel and compiler data with build information to get to problems quicker. An addition to Trace2 can also help with that, since it now allows the logging of environment variables, and codepaths with progress meters have started using “start_progress() and the stop_progress() calls as a ‘region’ to be traced”.

The 2.27 release, however, also has some user-facing changes. The command git pull, for instance, will now emit a warning should there be no pull.rebase configuration in place and there is some additional documentation to clarify the use of some options also present in fetch. 

A handful of new verbs in git update-ref –stdin are supposed to provide more explicit control over transactions meant to update references, which in turn should facilitate the implementation of two-phase commit-style atomic ref-updates across repositories. Git’s commit-graph has been extended to make checking for modified paths more efficient, while its write command includes new ways to write out split files. 

Rebase can now reapply all local commits without checking first and comes with a –no-gpg-sign option to override a user’s commit.gpgSign. Security related improvements seem to be rare in this release, though Git 2.27 includes some options to configure SSL when talking to proxies, and the team notes that the “SHA-256 transition continues”. 

A complete list of changes, including some CI-related updates, can be found in the mailing list entry detailing the new version.