Git 2.50 replaces old merge engine with faster ORT variant
A breath of fresh air for the Git 2.50 version control system: new merge engine, better performance and new tools for large repositories.
(Image: Smileus/Shutterstock.com)
With Git 2.50, the open-source project led by Junio C Hamano has published numerous changes that primarily affect the management of large repositories. The new functions and adjustments in this version come from a total of 98 contributors.
With this update, Git relies exclusively on the modern merge engine ORT, which was already introduced in version 2.33. The team has removed the previous standard recursive from the source code. ORT stands for “Ostensibly Recursive's Twin” and is a completely new development of the previous merge backend. According to the GitHub blog post, it should be faster, more robust and easier to maintain. According to the developers, the new --quiet mode of the merge-tree command can be used to check whether a merge is possible without creating new objects in the repository.
Manage cruft packs more efficiently
For repositories with many objects that are no longer referenced, Git 2.50 introduces a new type of management using the --combine-cruft-below-size option. This should allow smaller cruft packs to be merged into larger ones. At the same time, the behavior of --max-cruft-size has been revised and defined more clearly. The update also fixes a bug that prevented certain objects in multiple cruft packs from being updated correctly.
Reachability bitmaps can be used incrementally
Git 2.50 introduces support for reachability bitmaps in incremental multipack indices. This change should make it possible to add new bitmaps step by step instead of having to completely rewrite existing ones. This could improve performance, especially for giant repositories. The function is currently still considered experimental.
Videos by heise
Other smaller innovations
- With
git reflog delete, a direct command for deleting a complete reflog is available git maintenancecan take over additional tasks, includingworktree-pruneandreflog-expiregit cat-fileshould now also be able to filter objects directly by typegit add -pandgit add -inow work better in sparse checkouts without loading the index completely, according to the changelog
Git has been maintained by an active developer community since its creation in 2005 and was originally initiated by Linus Torvalds. Further details on the release of Git 2.50 can be found in the article on the GitHub blog.
(mdo)