Git 2.47 bringt Incremental-Multi-Pack-Indizes und eine Basis-Branch-Suche

vor 1 Tag 1

Die Versionsverwaltung Git 2.47 bietet eine Reihe an Neuerungen, die insbesondere größere und komplexere Projekte betreffen, wie inkrementelle Multi-Pack-Indizes, eine Suchmöglichkeit nach dem Basis-Branch eines Commits und eine automatische Merge-Konfiguration für VS Code. Eine neue Plattform Support Policy regelt ferner den Umgang mit neuen "exotischen" Plattformen.

Der neue Incremental Mulit-Pack Index vereinfacht die Suche in größeren Git-Strukturen, die ihr Projekt in mehrere Pakete (packfiles) aufgeteilt haben. Schon seit Git 2.21 gibt es einen einfachen Index für die Suche (Mulit-Pack Index, MIDX), der den Inhalt der Pakete abbildet. Dessen Aktualisierung gestaltet sich jedoch mit zunehmender Paketzahl immer aufwendiger, da das Update alle Inhalte komplett prüfen muss. Das neue inkrementelle Verfahren arbeitet mit mehreren geschichteten Index-Ebenen, die jeweils nur die Unterschiede zur vorherigen Ebene speichern (siehe Abbildung).

Der neuer inkrementeller Index über mehrere Packfiles vereinfacht die Suche in Paketen.

(Bild: GitHub)

Die Funktion ist noch experimentell. Interessierte fügen neue Pakte mit dem Befehl $ git multi-pack-index write --incremental zu einem bestehenden Index hinzu.

Den Start-Branch für einen Commit war für Entwicklerinnen und Entwickler in komplexeren Git-Strukturen bisher nicht so leicht zu finden, was die neue Git-Version nun vereinfacht. Der Befehl for-each-ref --format mit dem Platzhalter %(is-base:) löst dieses Problem.

Verbesserungen gibt es auch für Anwender von VS Code, die dessen 3-Wege-Merge-Funktion nutzen wollen. Bisher war dafür eine manuelle Konfiguration erforderlich, die sich nun mit dem Befehl $ git config set merge.tool vscode automatisiert durchführen lässt.

Hinzu kommen viele kleine Änderungen, beispielsweise neue Funktionen für die in Version 2.45 eingeführten reftables, etwa die Konfiguration $ git config set --global init.defaultRefFormat reftable, die reftable als Standard setzt. Anwenden lässt sich auch das --exclude-Argument für den for-each-ref-Befehl. Von reftables profitieren große Repositories mit vielen Referenzen.

Wer der Sicherheit von SHA-1 nicht mehr traut, kann nun SHA-256 als Standard für die Quersumme von Objekten festlegen: $ git config set --global init.defaultObjectFormat sha256.

Die neue Plattform Support Policy regelt den Umgang mit neuen "exotischen" Plattformen, die sich in das Git-Projekt einbinden wollen. Weitere Informationen zur neuen Version finden sich in den Ankündigungen von GitHub und GitLab.

(who)

Gesamten Artikel lesen