Git 2.25 ist erschienen. Die dezentrale Quellcode-Verwaltung arbeitet weiter am Partial-Clone-Feature, das es erlauben soll, nur Teile eines Repositories zu verwenden.
Hintergrund ist, dass Nutzer von riesigen Repositorys häufig nicht jede einzelne Datei benötigen. Dennoch holt ein konventionelles “clone” 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 erklärt das Github-Blog.
Der neue Weg vereinfacht Sparse-Checkouts. Beim Klonen gibt der Entwickler Git zunächst wie bisher einen Filter mit auf den Weg, lässt allerdings die Option “–no-checkout” weg. Dann wechselt er in das geklonte Repository und gibt “git sparse-checkout init” ein. Über “git sparse-checkout set /Pfad/für/den/Checkout” setzt er dann einen (oder mehrere Pfade), die Git auschecken soll. Weitere Subkommandos sind “list”, “enable” und “disable”.
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 erlauben es, rekursive alle Pfade in einem Verzeichnis zu übernehmen oder alle Dateien in einem bestimmten Verzeichnis zu holen, hier gibt es die Erklärung dazu. 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 reflektiert das Subkommando “git sparse-checkout list” neuerdings den aktivierten Cone-Modus in der Ausgabe.
Ferner liefen…
Weitere Änderungen verraten die Release Notes zur Version 2.25. 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. “git rebase –preserve-merges” ist als veraltete markiert. Der Generator-Code für Multi-Pack-Indizes kann nun einen Fortschrittsbalken anzeigen. Zudem können einige Kommandos “pathspec” nun der Standardeingabe oder einer Datei entnehmen und nicht mehr nur als Kommandozeilenoption. Weitere kleine Änderungen zählt die Dokumentation auf.




