Entwicklung & Code
Git 2.50 kickt recursive raus – ORT regelt ab jetzt die Merges
Mit Git 2.50 hat das Open-Source-Projekt unter der Leitung von Junio C Hamano zahlreiche Änderungen veröffentlicht, die vor allem die Verwaltung großer Repositorys betreffen. Die neuen Funktionen und Anpassungen stammen in dieser Version von insgesamt 98 Mitwirkenden.
Git setzt mit dem Update ausschließlich auf die moderne Merge-Engine ORT, die bereits in Version 2.33 vorgestellt wurde. Den bisherigen Standard recursive
hat das Team aus dem Quellcode entfernt. ORT steht für „Ostensibly Recursive’s Twin“ und ist eine komplette Neuentwicklung des bisherigen Merge-Backends. Sie soll laut GitHub-Blogbeitrag schneller, robuster und besser wartbar sein. Mit dem neuen --quiet
-Modus des Befehls merge-tree
lässt sich laut den Entwicklern prüfen, ob ein Merge möglich ist, ohne dabei neue Objekte im Repository zu erzeugen.
Cruft-Packs effizienter verwalten
Für Repositorys mit vielen nicht mehr referenzierten Objekten bringt Git 2.50 eine neuartige Verwaltung durch die Option --combine-cruft-below-size
. Damit sollen sich kleinere Cruft-Packs gezielt zu größeren zusammenführen lassen. Gleichzeitig wurde das Verhalten von --max-cruft-size
überarbeitet und klarer definiert. Einen Bug, der verhinderte, dass bestimmte Objekte in mehreren Cruft-Packs korrekt aktualisiert wurden, behebt das Update ebenfalls.
Reachability-Bitmaps inkrementell nutzbar
Git 2.50 führt Unterstützung für Reachability-Bitmaps in inkrementellen Multi-Pack-Indizes ein. Diese Änderung soll es ermöglichen, neue Bitmaps schrittweise zu ergänzen, anstatt bestehende vollständig neu schreiben zu müssen. Gerade bei sehr großen Repositorys könnte das die Performance verbessern. Die Funktion gilt derzeit noch als experimentell.
Weitere kleinere Neuerungen
- Mit
git reflog delete
steht ein direkter Befehl zum Löschen eines kompletten Reflogs bereit git maintenance
kann zusätzliche Aufgaben übernehmen, darunterworktree-prune
undreflog-expire
git cat-file
soll Objekte nun auch direkt nach Typ filtern könnengit add -p
undgit add -i
funktionieren laut Changelog jetzt besser in Sparse Checkouts, ohne den Index vollständig zu laden
Git wird seit seiner Entstehung 2005 von einer aktiven Entwicklergemeinschaft betreut und ursprünglich von Linus Torvalds initiiert. Weitere Details zum Release von Git 2.50 finden sich im Beitrag auf dem GitHub-Blog.
(mdo)