Mastodon
Zuletzt aktualisiert am
Linux News & Tutorials
Bobby 🇬🇧 Borisov

Git 2.50: Verabschiedung der Recursive Merges Engine

Das verteilte Versionskontrollwerkzeug Git 2.50 entfernt die alte Rekursive Merge-Engine und schließt den Übergang zur schnelleren, robusteren ORT-Engine ab.
Eine Übersetzung von 🇬🇧 Linuxiac.com

Fast drei Monate nach der letzten Version 2.49 hat Git, ein verteiltes Versionskontrollsystem und Eckpfeiler der Softwareentwicklung, das Entwicklern hilft, Änderungen an ihrem Code effizient und projektübergreifend zu verwalten, jetzt die neue Version 2.50 veröffentlicht.

Eine bemerkenswerte Verbesserung ist der Umgang mit mehreren Cruft Packs. Ursprünglich in Git 2.37 eingeführt, speichern Cruft Packs unerreichbare Objekte in Repositories. Mit Git 2.43 wurden Optionen zur Verwaltung dieser Pakete eingeführt, aber die Benutzerfreundlichkeit war weiterhin problematisch, vor allem wegen des verwirrenden Verhaltens der Befehlszeile und unerwarteter Einschränkungen.

Git 2.50 behebt diese Probleme mit einer neuen, übersichtlichen Option namens --combine-cruft-below-size. Mit diesem Tool können Benutzer kleinere Cruft-Pakete effizient kombinieren und so die Repository-Hygiene im Laufe der Zeit erheblich verbessern.

Eine weitere wichtige Neuerung sind die inkrementellen Erreichbarkeits-Bitmaps für mehrere Pakete. Nach den inkrementellen Verbesserungen des Multi-Pack-Indexes in Git 2.47 verbessert Git 2.50 die Leistung in großen Repositories weiter, indem es inkrementelle Aktualisierungen der Erreichbarkeits-Bitmaps ermöglicht.

Die vielleicht aufregendste Neuerung in dieser Version ist jedoch die vollständige Umstellung von Gits älterer Merge-Engine "recursive" auf die schnellere und wartungsfreundlichere "ORT"-Engine (Ostensibly Recursive's Twin).

🎓 ORT wurde in Git 2.33 eingeführt und in 2.34 zur Standardeinstellung gemacht und hat nun die alte rekursive Engine vollständig ersetzt. Diese Änderung verbessert die Leistung und führt neue Funktionen ein, wie z. B. die Möglichkeit, die Zusammenführbarkeit zu testen, ohne neue Zusammenführungsobjekte zu persistieren.

Entwickler, die auf das Skripting von Repository-Objekten angewiesen sind, werden die Verbesserungen an  git cat-file zu schätzen wissen. Git 2.50 führt eine optimierte Objektfilterung direkt in git cat-file ein und vereinfacht damit gängige Aufgaben wie das Extrahieren bestimmter Objekttypen. Darüber hinaus wurde die selten genutzte Option --allow-unknown-type abgeschafft, wodurch die Funktionalität des Werkzeugs gestrafft und veraltete Macken beseitigt wurden.

Darüber hinaus werden die Wartungsaufgaben mit den Aktualisierungen von git maintenance intuitiver. Es wurden neue Aufgaben wie worktree-prune, rerere-gc und reflog-expire hinzugefügt, die parallel zu den bestehenden Garbage-Collection-Vorgängen laufen und die routinemäßige Repository-Bereinigung vereinfachen. Die Benutzer können nun auch die Stapelgröße für das Packen loser Objekte konfigurieren, was eine bessere Kontrolle über das Wartungsverhalten ermöglicht.

Neue Konfigurationen für das TCP-Keepalive-Verhalten verbessern die Netzwerkleistung und bieten eine bessere Kontrolle über HTTP-Verbindungen. Darüber hinaus wurde die Perl-Abhängigkeit erheblich reduziert, indem sie vollständig aus der Test-Suite und der Dokumentations-Toolchain von Git entfernt wurde, was die Portabilität verbessert und externe Abhängigkeiten reduziert.

Zu den Verbesserungen der Benutzeroberfläche gehören klarere Kommentare während interaktiver Rebases und eine verbesserte Effizienz bei spärlichen Checkouts unter Verwendung von git add -p oder git add -i.

Weitere Informationen finden Sie in der Ankündigung.

Spendieren Sie Bobby einen ☕ Ko-fi

Ein Service von s3n🧩net

Comments