Git 2.28 bringt neue Konfigurationsoption für das Erstellen von Repositories
Mit dem aktuellen Release lässt sich neben weiteren Neuerungen bei Bedarf die Berechnung einiger Diffs mithilfe gespeicherter Bloomfilter überspringen.
- Madeleine Domogalla
Das Versionskontrollsystem Git hat mit Version 2.28 ein Update erhalten. Das neue Release des Open-Source-Projekts bringt Änderungen für die Initialisierung neu angelegter Git-Repositories. Außerdem greift Version 2.28 die bereits in Git 2.27 begonnenen Änderungen am Dateiformat des commit-Graphen auf.
Git hat bisher für die Initialisierung eines von Grund auf neuen Repositories mit git init
gearbeitet, indem es einen initialen ersten Zweig mit dem Namen master
erstellt hat. Version 2.28 führt eine neue Konfigurationsoption ein (init.defaultBranch
), um den fest-codierten Begriff zu ersetzen. git init
orientiert sich stattdessen an dem Wert der neuen Option, wenn der erste Branch in einem Repository erstellt wird. init.defaultBranch
wird standardmäßig auf master
gesetzt, wenn der Wert nicht gesetzt wurde. Weiterführende Informationen zur Umbenennung finden sich in einem Beitrag auf GitHub.
Die Berechnung von Commits überspringen
Git 2.27 hatte Änderungen am commit-graph
-Dateiformat vorgenommen, um Bloomfilter für geänderte Dateipfade speichern zu können. Ein Bloomfilter ist eine probabilistische Datenstruktur. Mittels des Filters lässt sich ermitteln, welche Daten bereits in einem Datenstrom enthalten sind und welche erstmals vorkommen. Der Commit-Graph speichert einen dieser Bloomfilter für Commits, die sich im Commit-Graphen befinden, und er füllt diesen Bloomfilter mit einer Liste von Pfaden, die zwischen diesem Commit und seinem ersten übergeordneten Filter geändert wurden. Wenn Entwickler einen Git-Befehl nutzen, der Diffs berechnet, dann erlaubt der Filter Git offenbar, deutlich weniger Diffs zu berechnen. Die Berechnung lässt sich für bestimmte Commits überspringen, denn die Bloomfilter angeben, dass sich die Daten definitiv nicht im untersuchten Pfad vorkommen.
Git 2.28 greift diese Neuerungen auf. In Git 2.27 und neuer kann das Versionskontrollsystem die Berechnung vieler dieser Diffs vollständig überspringen, indem es den Bloomfilter für den geänderten Pfad eines Commit C's aufruft und nach /pfad/to/file
abfragt. Gibt diese Abfrage zurück, dass ein Wert im Datensatz nicht enthalten ist, erkennt Git, dass die Berechnung dieser Diffs nicht notwendig ist.
Nennenswert ist zudem, dass das aktuelle Release erste Schritte zur nichtrassistischen Sprache geht: Entwickler können für neue Repositories den Namen des ersten Zweigs sowie den Standardnamen dafür bestimmen. Ziel ist der Abschied vom Begriff "Master", der bisher dafür fest in der Software kodiert war. Version 2.28 hält weitere Neuerungen bereit. Interessierte finden nähere Informationen zum neuen Release über die Release Notes oder über den Blogbeitrag von GitHub.
(mdo)