📢 Git 2.33 comes with a new merge strategy 'merge-ort' that gains 500x-9000x speed

Git 2.33 update is now available with some new improvements. In this release a new strategy has been introduced that boosts the merge speed process. - Story by Kunal Chowdhury on


Several months after releasing Git 2.31, the open-source Git Project released Git 2.33 as the latest stable update. The previous version, which was released in March, added background maintenance, on-disk reverse indexes to Git.

 

The latest version of Git (v2.33) brings a new merge strategy called "merge-ort", several improvements around geometric repacking, and a number of other fixes and improvements on top of the previous release.

 

Git 2.33 comes with several new improvements

 

Git 2.33 adds a new merge strategy called "merge-ort". It has been rewritten from scratch with the same concepts of recursion and rename-detection, solving many of the existing issues related to performance.

 

With the new strategy in place, you will find a much faster result. According to GitHub, the "merge-ort" can be as fast as "500x" in a large merge with many renames. It also reports that for a similar merge in a rebase operation, it will be "9000x" faster because the new algorithm will cache and reuse some computations common to the merges.

 

 

On top of that, GitHub also reports that the resulting code is much cleaner and easier to work with. Some known bugs, which were present in "merge-recursive", have been fixed with these changes.

 

In a future version of Git, the "merge-ort" function is likely to become the default strategy. Till that time, you can try this feature by running the "git merge -s ort" command.

 

 

Other than the above new feature, Git Project adds the following UI, Workflows, and Features to Git 2.33.0:

  • "git send-email" learned the "--sendmail-cmd" command line option and the "sendemail.sendmailCmd" configuration variable, which is a more sensible approach than the current way of repurposing the "smtp-server" that is meant to name the server to instead name the command to talk to the server.
  • The userdiff pattern for C# learned the token "record".
  • "git rev-list" learns to omit the "commit <object-name>" header lines from the output with the `--no-commit-header` option.
  • "git worktree add --lock" learned to record why the worktree is locked with a custom message.

 

 





Latest Tech News