Zum Hauptinhalt Zur Navigation

Versionskontrolle: Git 2.25 vereinfacht partielle Checkouts

Das Werkzeug zur dezentralen Quellcode-Verwaltung Git erweitert mit Version 2.25 das Partial-Clone-Feature, das es ermöglichen soll, nur Teile eines Repositories zu verwenden.
/ Kristian Kißling (Linux Magazin) , Sebastian Grüner
5 Kommentare News folgen (öffnet im neuen Fenster)
Git 2.25 bietet nun auch einen Cone-Modus, also einen Kegel-Modus. (Bild: Ivan Radic, flickr.com)
Git 2.25 bietet nun auch einen Cone-Modus, also einen Kegel-Modus. Bild: Ivan Radic, flickr.com / CC-BY 2.0

Die aktuelle Version 2.25 des Versionskontrollsystems Git ist erschienen. Die nun verfügbare Version verbessert erneut den Umgang mit besonders großen Repositories. Hintergrund ist, dass Nutzer von riesigen Repositories häufig nicht jede einzelne Datei benötigen. Dennoch holt der Aufruf clone bisher sämtliche Versionen einer Software auf den Rechner, inklusive aller Änderungen von Anfang an.

Das ist nicht nur in Sachen Netzwerkauslastung ein Problem, sondern kann auch Speicherplatzsorgen bereiten oder problematisch werden, wenn ein Build eigentlich nur einen Bruchteil eines Riesen-Repositories benötigt. Partial Clones oder Sparse Checkouts sollen hier Abhilfe schaffen. Die Details dazu erklärt das Github-Blog(öffnet im neuen Fenster) .

Demnach vereinfacht die neue Version die Sparse Checkouts. Beim Klonen kann wie bisher auch ein Filter mit übergeben werden. Dabei kann nun aber die Option --no-checkout weggelassen werden. In dem nun lokal vorhandenen geklonten Repository folgt schließlich nur noch der Befehl git sparse-checkout init . Über git sparse-checkout set /Pfad/für/den/Checkout können dann Pfade gesetzt werden, die Git tatsächlich auschecken soll. Weitere verfügbare Subkommandos sind list , enable und disable .

Neuer Cone-Modus

Bei vielen einzelnen Pfaden kann auch das wiederum sehr lange dauern. Laut dem Github-Post hilft dann die Konfigurations-Option git config core.sparseCheckoutCone . Die Cone-Patterns ermöglichen es, rekursiv alle Pfade in einem Verzeichnis zu übernehmen oder alle Dateien in einem bestimmten Verzeichnis zu holen, wie die Git-Dokumentation ausführt(öffnet im neuen Fenster) .

Die Idee ist, zu Beginn negative Patterns zu schreiben, die nur Checkouts der Dateien im Root-Verzeichnis erlauben. Dann erst folgt der Checkout für das rekursive Muster. Zugleich zeigt das Subkommando git sparse-checkout list den aktivierten Cone-Modus in der Ausgabe.

Weitere Änderungen verraten die Release Notes zur Version 2.25(öffnet im neuen Fenster) . So ist jetzt ein Tutorial zum Thema Objektnummerierung mit an Bord. Das Kommando git branch -edit-description schließt nun auch den Betreff (Subject) mit ein. Der Befehl git rebase --preserve-merges ist als veraltet markiert. Der Generator-Code für Multi-Pack-Indizes kann nun einen Fortschrittsbalken anzeigen. Zudem können einige Kommandos die Variable pathspec der Standardeingabe oder einer Datei entnehmen und nicht mehr nur als Kommandozeilenoption.


Relevante Themen