Neuerungen in Git 2.52: Befehle, Leistung und Sicherheit

  • Neue Befehle: git last-modified, git repo und Erweiterungen zu git refs für häufige Operationen.
  • Verbesserte Wartung: geometrische Aufgaben in der Git-Wartung und mehrere Leistungsoptimierungen.
  • Sicherheit in Arbeit: Erste Schritte hin zur Interoperabilität von SHA-1 und SHA-256 sowie eine Standardänderung auf „main“ in der nächsten Hauptversion.
  • Weitere nützliche Funktionen: Verbesserungen an Bloom-Filtern, Sparse-Checkout Clean und neue Funktionen in Commit-Graph, Stash und Diff-Tree.

Git 2.52

Git 2.52 jetzt verfügbar als stabiles Update für dieses beliebte verteilte Versionskontrollsystem. Die Version enthält Neue Funktionen, Wartungsanpassungen und Leistungsverbesserungen Das Ergebnis der Arbeit von mehr als 94 Mitarbeitern, 33 davon zum ersten Mal in diesem Projekt.

Zu den bemerkenswertesten Änderungen zählen neue Unterbefehle zum Durchsuchen von Repositories, ein intelligenterer Wartungsworkflow und Fortschritte beim Übergang zu SHA-256. All dies wird mit einem konsistenten und unaufdringlichen Ansatz präsentiert. praktischer Ansatz die Repositories unterschiedlicher Größe verwalten.

Neue Git 2.52-Befehle zum Erkunden von Repositories

Die auffälligste Neuerung ist git last-modifiedEntwickelt, um effizient den jeweils letzten Commit zu ermitteln, der jeden Pfad verändert hat. In Repositories mit vielen Einträgen vermeidet dieser Ansatz wiederholte Verlaufsdurchläufe und kann um ein Vielfaches schneller als die Verkettung von ls-tree + log.Laut internen Tests verkürzt sich die Reaktionszeit in realen Anwendungsszenarien von Sekunden auf Millisekunden.

Motor last-modified Es wurde über Jahre hinweg auf GitHub unter dem Namen entwickelt. SchuldbaumSie nähren seit 2012 ihre Schuldzuweisungen auf Baumebene. Anschließend GitLab-Ingenieure Sie haben das Patch-Set optimiert, um es in Git 2.52 zu integrieren, obwohl noch einige Funktionen hinzugefügt werden müssen, wie zum Beispiel … Festplattenformat zum Zwischenspeichern von Ergebnissen aus früheren Hinrichtungen.

Das experimentelle Modell trifft ebenfalls ein. git repoEin Dach für die Beratung zu Repository-Funktionen. git repo info Kannst du sagen, ob es blank o seicht, das Format von Objekten und Referenzen, und mit git repo structure werden gedruckt Strukturstatistik (Commit-Zähler, Bäume, Blobs, Zweige, Tags usw.). Außerdem info beinhaltet die abgekürzte Option -z und ist fähig zu Berichten Sie das Objektformat benutzt.

Für diejenigen, die auf einer niedrigen Ebene mit Referenzen arbeiten, git refs Suma git refs list (Alias ​​von git for-each-ref) Und git refs exists (ähnlich zu git show-ref --existsSie bieten keine beispiellosen Fähigkeiten, aber Sie konzentrieren sich auf häufige Operationen von Referenzen unter einem einzigen Befehl.

Klein, aber fein: jetzt git cmd --help-all Es funktioniert auch außerhalb eines RepositorysDadurch ist der Zugriff auf die globale Hilfe ganz einfach, ohne dass vorher irgendetwas initialisiert werden muss.

Wartung und Leistung

Git 2.52 führt eine Aufgabe ein geometric innerhalb git maintenance Es vermeidet nach Möglichkeit vollständige Neuverpackungen und entfernt nicht erreichbare Objekte seltener. Die Aufgabe untersucht die Pakete, um eine geometrische Folge nach Anzahl der Objekte und gegebenenfalls ohne Beschneiden verdichten; falls der Vorgang in einer einzigen Packung enden würde, führen Sie eine git gc Komplett für Konsolidierung und Beschneidung.

Hinsichtlich der Geschwindigkeit sind messbare Fortschritte zu verzeichnen: git describe Es verwendet nun eine Prioritätswarteschlange und erzielt dadurch einen Gewinn von etwa 30 % Leistung; git remote rename Optimiert die Umbenennung von Referenzen; git ls-files Dadurch bleibt der Index in mehr Fällen gestreut; git log -L Es vermeidet bestimmte Unterschiede auf Baumebene bei Zusammenführungen und beschleunigt so die Analyse; und die Bibliothek xdiff Es beinhaltet mehrere Optimierungen, die Diff und Merge wurden verbessert auf Dateiebene.

Sicherheit und Roadmap für Git 3.0

Der Übergang von SHA-1 zu SHA-256 schreitet voran. Die ersten Elemente von SHA-256 erscheinen in Version 2.52. Interoperabilität zwischen AlgorithmenZiel ist es, den nahtlosen Austausch von Änderungen zwischen Repositories mit unterschiedlichen Hashwerten zu ermöglichen. Es handelt sich zwar noch um Grundlagenarbeit, aber sie ebnet den Weg für die nächste Hauptversion.

Eine weitere geplante Änderung für Git 3.0 ist, dass der Standardzweig „main“ heißen wird. Dies ist bereits seit Version 2.52 enthalten. Hinweise und Hilfemeldungen Um diesen Wandel zu erleichtern, und jeder, der sich einen Vorteil verschaffen möchte, kann sich mit der Flagge anmelden. WITH_BREAKING_CHANGES um geplante Verhaltensweisen zu testen.

Es enthält optional auch Rust-Code, der durch WITH_RUSTwelche die Kodierung/Dekodierung von Ganzzahlen variabler Breite implementiert. In dieser Version ist sie nicht zwingend erforderlich, und Git 2.52 funktioniert auch ohne den Rust-Compiler. Es wird erwartet, dass Git 3.0 dies erfordert. und die überarbeiteten Teile erweitern.

Verbesserungen bei Arbeitsabläufen und Benutzerfreundlichkeit

Die Verwendung von Bloom-Filter mit geändertem PfadEin probabilistischer Filter, der Reisen beschleunigt, indem er die Routen eingrenzt. Jetzt werden sie sogar dann verwendet, wenn die Pfadangabe es enthält Teilweise Wildcards (zum Beispiel, foo/bar/*/bazund in Szenarien mit mehreren interessanten Routen, was Abfragen wie die von last-modified und mehrere Verlaufsbefehle.

git sparse-checkout Füge die Aktion hinzu clean Um Fälle zu beheben, in denen Dateien bei der Änderung der Definition von Interessensgebieten nicht mehr ausgewählt werden, können Sie dies mit einem einzigen Schritt tun. Reinigen Sie den Arbeitsbaum unerwünschte Elemente.

Weitere nützliche Ergänzungen: neue Variable commitGraph.changedPaths standardmäßig aktivieren --changed-paths en git commit-graph; Option stash.index für git stash pop/apply verhält sich so, als ob es aufgerufen würde mit --index; git diff-tree recibe --max-depth; git fast-import ahora verwaltet signierte EtikettenUnd git repo info Lernen Sie, das Berichtsobjektformat zusätzlich zur Unterstützung für -z.

Git 2.52 Verfügbarkeit

Der Quellcode für Git 2.52 kann von folgender Website heruntergeladen werden: Offizielle Website Es soll lokal kompiliert werden. Es sollte in den kommenden Tagen und Wochen eintreffen. Repositories der wichtigsten Distributionen GNU/Linux in Europa (Debian, Ubuntu, Fedora, openSUSE, Arch usw.) verfügen bereits über Paketmanager wie Homebrew, MacPorts oder Chocolatey, mit den üblichen Paketierungszeiten.

Mit dieser Version stärkt Git seine täglichen Abläufe mit schnellere und nützlichere BefehleEin optimierter Wartungsablauf und die ersten Bausteine ​​für den Übergang zu SHA-256 befinden sich nun im „main“-Branch als Standardzweig. Benutzer, die ein Upgrade durchführen, können es jetzt testen. git last-modifiedDie neue git repodie geometrische Aufgabe von git maintenance und die übrigen Anpassungen, die, ohne viel Aufhebens darum zu machen, die Benutzererfahrung in kleinen wie auch in riesigen Repositories gleichermaßen reibungslos gestalten.

GitLab Duo Agent
Verwandte Artikel:
GitLab Duo Agent Platform: Die neue Ära der DevSecOps-Zusammenarbeit mit KI-Agenten