Git 2.33 has been released, including a new optional merge process called merge-ort, which the team hopes will become the default in the next version.

Git 2.33 released with new optional merge process likely to become the default: It's 'over 9,000' times faster

submited by
Style Pass
2021-08-18 13:30:10

Git 2.33 has been released, including a new optional merge process called merge-ort, which the team hopes will become the default in the next version.

Git releases are relatively frequent. Git 2.31 was released in March and Git 2.32 in June. According to the release announcement, version 2.33 "does not have many end-user facing changes and new features" aside from fixes and internal improvements – but there is one major change, described as a "new merge strategy backend."

The strategy in question is merge-ort, where ort stands for "Ostensibly Recursive's Twin," according to its creator Elijah Newren.

A merge strategy is the mechanism used to combine code from multiple versions of the same codebase. Merging is a critical feature of distributed version control systems since it avoids the need for locking a main version when a checked-out copy is being edited. Merge mechanisms work by comparing the contents of a file with the contents of its ancestor, to identify changed sections, and then comparing the changed sections of one file with those of another.

There might not always be a single ancestor file, though, and in this case a recursive merge can be used to merge candidate ancestors and then treat the merged file as the ancestor. "This has been reported to result in fewer merge conflicts without causing mismerges by tests done on actual merge commits taken from Linux 2.6 kernel development history," say the docs. The merge-recursive is the Git default. Another, called octopus, is designed for merging files with more than two heads, and is the default when merging more than one branch.

Leave a Comment