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.

listen Print view
Lead story Leaf blower

(Image: Smileus/Shutterstock.com)

2 min. read
Contents

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.

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.

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

  • With git reflog delete, a direct command for deleting a complete reflog is available
  • git maintenance can take over additional tasks, including worktree-prune and reflog-expire
  • git cat-file should now also be able to filter objects directly by type
  • git add -p and git add -i now 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)

Don't miss any news – follow us on Facebook, LinkedIn or Mastodon.

This article was originally published in German. It was translated with technical assistance and editorially reviewed before publication.