Versionsverwaltung: Git 2.25 vereinfacht Sparse Checkouts

Version 2.25 der verteilten Versionskontrollsystems bringt einen dedizierten Befehl für einen partiellen Checkout mit.

In Pocket speichern vorlesen Druckansicht
Versionsverwaltung: Git 2.25 vereinfacht Sparse Checkouts
Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag

Zwei Monate nach dem Release von Git 2.24 ist Version 2.25 des Versionsverwaltungssystems erschienen. Das Release der ursprünglich von Linus Torvalds ins Leben gerufenen Open-Source-Software bringt wie üblich zahlreiche Neuerungen und Änderungen mit: Gut 500 Commits von 84 Leuten verzeichnen die Release Notes, von denen jedoch ein Großteil für die meisten Entwickler eher am Rand interessant sind.

Besonders nennenswert ist der vereinfachte Umgang mit sogenannten Sparse Checkouts zum Anlegen nicht vollständiger Arbeitskopien. Entwickler definieren dafür Muster, welche Dateien Git beim Checkout aussparen soll. Die Patterns schreiben sie in die Datei $GIT_DIR/info/sparse-checkout.

Neben Mustern zum Einschließen von Bereichen lassen sich auch einzelne Dateien oder Verzeichnisse über ! explizit ausschließen. Um beispielsweise alle Inhalte außer der Datei unwichtig einzuschließen ließe sich folgender Inhalt definieren:

/*
!unwichtig

Die Datei kann recht komplex und unübersichtlich werden und der in Git 2.25 eingeführte Befehl sparse-checkout vereinfacht das Definieren der Muster. Er bietet die vier Unterbefehle set, list, init und disable. Die ersten dienen zum Setzen von Patterns beziehungsweise zum Auflisten der zuvor gesetzten Muster. Die letzten beiden Unterkommandos aktivieren beziehungsweise deaktivieren das Sparse Checkout.

Über den Befehl sparse checkout lassen sich beliebig komplexe Muster erstellen, deren Auswertung sich negativ auf die Performance auswirken kann. Der über über git config core.sparseCheckoutCone aktivierte Cone-Modus schränkt die möglichen Regeln zugunsten der Performance ein. Dabei lässt sich festlegen, dass Git alle Pfade innerhalb eines Verzeichnisses einbezieht oder alle Dateien innerhalb eines bestimmten Pfads. Standardmäßig bezieht die Versionsverwaltung alle Dateien im Stammverzeichnis des Repository ein.

Weitere nennenswerte Neuerungen in Git 2.25 sind eine Fortschrittsanzeige beim Erstellen von Multi-Pack-Indizes und ein verbesserter Debugging-Support beim Lazy Cloning. Der über git apply --3way angestoßene Three-way Merge, der neben der Quell- und Zieldatei auch die gemeinsame Basis einbezieht, berücksichtigt nun die Konfigurationsvariable
merge.conflictStyle.

Die vollständige Liste der Neuerungen, Bugfixes und Änderungen in Git 2.25 lässt sich den Release Notes entnehmen. Wie üblich bietet der GitHub-Blog eine ausführlichere Beschreibung der Hightlights und konzentriert sich dabei auf das Sparse Checkout. Eine ausführliche Beschreibung des neuen sparse-checkout-Befehls sowie des Cone-Modus findet sich in der Git-Dokumentation auf GitHub. (rme)