Git 2.29 überarbeitet Hash-Funktion mit experimenteller SHA-256-Unterstützung

Git-Nutzer können mit der neuen Version bereits das neue Objektformat mit dem Secure Hash Algorithm (SHA) 256 testen, es soll sicherer sein als SHA-1.

In Pocket speichern vorlesen Druckansicht 15 Kommentare lesen

(Bild: rawf8/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Silke Hahn

Die neue Git-Version 2.29 bietet Nutzern des Open-Source-Tools zur verteilten Versionsverwaltung die Möglichkeit, ein anderes Objektformat zu testen, das auf dem Secure Hash Algorithm (SHA) 256 basiert und als sicherer gegenüber Angriffen gilt als das gängige Format, das auf SHA-1 beruht – das neuere Objektformat mit SHA-256 erhält mit dem aktuellen Release experimentelle Unterstützung. Ebenfalls neu sind einige Shortlog-Tricks: So gruppiert git shortlog nun Commits nicht mehr nur nach dem Urheber, sondern kann auch Co-Autoren aufführen.

Außerdem führt Git 2.29 negative Refspecs ein. Zur Erinnerung: Refspecs sind Elemente, die Git beim Klonen von Verzeichnissen erstellt. Das Versionsverwaltungssystem kann damit zuordnen, an welcher Stelle sich welche Inhalte befunden haben und kann so zum Beispiel die Hierarchie von Zweigen an anderer Stelle korrekt darstellen. Bislang konnten Entwickler mit diesen Referenzmarkern nur bestimmen, welche Auswahl an Referenzen sie wollten. Mit den negativen Refspecs lassen sich Referenzen erstmals selektiv ausschließen.

Beginnt ein Refspec nun mit dem Zeichen ^, schließt Git die notierte Referenz aus. Bislang hätten Entwickler diese Funktionalität etwa mit folgendem Befehl auslösen können: $ git fetch origin 'refs/heads/*:refs/heads/*' ^refs/heads/ref-to-exclude. Das Ergebnis wäre das gleiche, der Weg dahin ist nun eleganter zugänglich. Die neuen negativen Refspecs können offenbar Wildcards enthalten, allerdings ist es laut Blogeintrag nicht möglich, ihnen eine spezielle Zieladresse vorzugeben.

Um ein Wildcard-Refspec auszuschließen, können Nutzer den Befehl ^refs/heads/foo/* einsetzen. Eine weitere Besonderheit weisen negative Refspecs auf: Anders als positive Refspecs können sie nicht anhand der Objekt-ID auf ein einzelnes Objekt verweisen. Auch im Bereich der Konfigurationswerte lassen sich negative Refspecs wohl einsetzen.

Laut Blog-Ankündigung plant das Git-Team, künftig SHA-256 als Standard einzuführen und will aber SHA-1 weiterhin unterstützen. Für den bevorstehenden Wechsel zu SHA-256 hat das Git-Team dem neuen Release einen Übergangsplan beigefügt. Künftig soll auch die Arbeit mit Repositorys in beiden Formaten möglich sein, wofür die Software offenbar für jedes Objekt, das Nutzer in Git anlegen, Hashes in den beiden Formaten errechnet. Damit Nutzer Repositorys formatübergreifend bearbeiten können, wenn sie unterschiedlich formatierte Objekte enthalten, soll das Versionsverwaltungssystem dann auf eine Übersetzungstabelle von Git zurückgreifen. So sollen Referenzen auf ältere Commits im Objektformat SHA-1 ihre Gültigkeit behalten, was Git durch durch automatisches Konvertieren des Formats anhand der Übersetzungstabelle ermöglichen will.

Seit der Vorgängerversion 2.28 lässt sich die Berechnung von Commits überspringen – eine Änderung, an der das Team seit Git 2.27 gefeilt hatte. Auch die künftige Unterstützung der neuen Hash-Funktionen wird sich wohl über mehrere Releases erstrecken. An Version 2.29 haben laut Blogeintrag rund 90 Entwickler mitgewirkt, von denen 24 zum ersten Mal in diesem Kontext aktiv waren.

Eine Zusammenfassung der Highlights des aktuellen Release findet sich im Ankündigungsbeitrag des Git-Blogs. Wer tiefer in die Details einsteigen möchte, kann sich die Release Notes zur Git-Version 2.29 anschauen. Der Umzugsplan für die Hash-Funktion ist als Online-Dokument einsehbar.

(sih)