Zum Hauptinhalt Zur Navigation

Versionskontrolle: Git 2.37 beschleunigt Arbeit mit Teil-Repositorys

Das Werkzeug Git unterstützt bereits Teil-Check-outs. Mit dem Sparse-Index soll dies noch schneller werden.
/ Sebastian Grüner
1 Kommentare News folgen (öffnet im neuen Fenster)
Der Git-Index überwacht Neuerungen in den Dateien und Ordnern. (Bild: Pixabay)
Der Git-Index überwacht Neuerungen in den Dateien und Ordnern. Bild: Pixabay

Die aktuelle Version 2.37 des Versionskontrollsystems Git(öffnet im neuen Fenster) ist erschienen, wie das Unternehmen Github in seinem Blog ankündigt. Damit sei die neue Funktion des sogenannten Sparse-Index erstmals bereit für den breiten Einsatz durch Nutzer. Das sollte vor allem die Arbeit mit großen Repositorys und Monorepositorys beschleunigen.

Dazu heißt es in der Ankündigung: "Wenn Sie in einem extrem großen Repository arbeiten, muss häufig nicht der gesamte Inhalt Ihres Repositorys lokal vorhanden sein, um einen Beitrag leisten zu können. Wenn Ihr Unternehmen beispielsweise ein einzelnes Monorepo verwendet, sind Sie möglicherweise nur an den Teilen des Repositorys interessiert, die den wenigen Produkten entsprechen, an denen Sie arbeiten."

Der Sparse-Index erweitert Sparse-Check-out

Um derartige Arbeiten zu beschleunigen, verfügt Git bereits über die Funktion des teilweisen Check-outs (Sparse-Check-out). Dabei werden nur jene Komponenten heruntergeladen, mit denen wirklich gearbeitet wird. Zu der nun vorgestellten Neuerung heißt es: "Der Sparse-Index ist eine ebenso wichtige Komponente dieser Gleichung."

Der Git-Index ist eine wichtige Basisstruktur in der Versionskontrolle selbst. Darin werden die Unterschiede zwischen den geänderten Dateien auf dem eigenen Dateisystem und der tatsächlichen Commit-History gespeichert, hinzu kommen Dateisystem-Informationen. Das Problem: Bisher speichert der Index diese Daten für alle Dateien im Git-Head, nicht nur für jene aus dem Sparse-Check-out.

Mit dem Sparse-Index ändert sich das und es werden nur noch die Dateien aus dem Sparse-Check-out überwacht. Das soll zu teils massiven und spürbaren Geschwindigkeitsverbesserungen für Git-Kommandos führen. Das gilt für zahlreiche Kommandos, die alle auf den Index zugreifen. Dazu gehören unter anderem git merge , git rebase , git cherry-pick , und git revert , aber auch git commit oder git status .

Mit dem nun veröffentlichten Git 2.37 hinzugekommen sind git show , git sparse-checkout , und git stash , die nun alle über Integrationen für den Sparse-Index verfügen. Damit sollen die Arbeiten am Sparse-Index nun alle in Git integriert und nutzbar sein.

Weitere Details zu der aktuellen Version liefert die Ankündigung. Eine ausführliche Erklärung zu den Details des Sparse-Index(öffnet im neuen Fenster) sowie zu dessen Implementierung hat Github bereits im Herbst vergangenen Jahres veröffentlicht.


Relevante Themen