The new release of the popular open source (opens in new tab) version control system, Git, enables developers (opens in new tab) to experience a new merge scheme, which could become default by the time the next version rolls out.
Git was originally developed by Linus Torvalds, popularly known as the developer and principle maintainer of the Linux (opens in new tab) kernel. Git v2.33 brings with it 449 new changes, though a majority of them are backend improvements.
“As can be seen here, it turns out that this release does not have many end-user facing changes and new features, but a lot of fixes and internal improvements went into the codebase during this cycle,” wrote Git’s core maintainer, Junio C Hamano, in the release announcement (opens in new tab).
- Here’s our roundup of the best laptops for programming (opens in new tab)
- Get started with programming with these best Python courses (opens in new tab)
- Take a look at out collection of the best HTML courses (opens in new tab)
However, Hamano points out that the highlight of the release is the work on the new merge strategy backend, known as merge-ort.
New merge scheme
Git's strategy backend kicks in every time the tool performs a merge between two code branches. Git’s original strategy was called resolve, but was soon replaced by merge-recursive.
Explaining the need (opens in new tab) for a new merge scheme, Taylor Blau, Senior Software Engineer, Git at GitHub writes that while merge-recursive did a stellar job, it suffered a number of shortcomings. Originally written in Python (opens in new tab), before a rewrite in C, it wasn’t particularly snappy and generally “harder to optimize.”
“The merge-ort strategy is a from-scratch rewrite with the same concepts (recursion and rename-detection), but solving many of the long-standing correctness and performance problems. The result is much faster,” writes Blau, suggesting that in certain use cases the new merge scheme reported speed gains of over 9000x.
In the release announcement, Hamano points out that developers can test the new backend in the current release with the git merge -sort command.