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.

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.

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.

  • Mit git reflog delete steht ein direkter Befehl zum Löschen eines kompletten Reflogs bereit
  • git maintenance kann zusätzliche Aufgaben übernehmen, darunter worktree-prune und reflog-expire
  • git cat-file soll Objekte nun auch direkt nach Typ filtern können
  • git add -p und git 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)



Source link

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Beliebt

Die mobile Version verlassen