Large File Support (LFS) für Git
19.11.2022, 11:16 Uhr
Unterstützung für Binärdateien
Wer Werkzeuge wie Git intensiv nutzt, stellt schnell fest, dass diese mit Binärdateien so ihre liebe Mühe haben. Das Git Large File Support-Plugin nimmt sich dieser Thematik an.
SCM-Systeme organisieren die unter Konfiguration-Management gestellten Dateien in einer Baumstruktur, welche stets die Änderungen zu vorherigen Version ablegt. Wird nun eine konkrete Revison einer Datei angefordert, baut Git aus den vorhandene Deltas die richtige Version zusammen und liefert diese aus. Dieser Mechanismus erlaubt es, die Größe des Source-Code-Repositories sehr kompakt zu halten, da nicht jedes Mal die gesamte Datei gespeichert wird.
Leider funktioniert diese Technik nur mit reinen ASCII Textdateien, wie es bei einfachem Quelltext der Fall ist. Speichert man allerdings binäre Dateien wie Office-Dokumente, Bilder oder kompilierte Bibliotheken im Repository, greift dieser Mechanismus nicht. Jede Änderung der Binäredatei stellt eine neue Version dar und wird vollständig ins Repository aufgenommen. Hat man nun eine hohe Anzahl solcher Binärartefakte, die auch oft geändert werden, steigt der Speicherverbrauch auf dem Datenträger recht schnell an.
Ein anderer sehr negativer Effekt, der sich mit der Zeit einstellt, ist eine vergleichsweise lange Zeit für das Auschecken auch kleiner Unterverzeichnisse. Zeiten von über 15 Minuten in manchen Projekten sind durchaus möglich. Der Grund liegt in dem Umstand, das Git durch die vielen Dateien mehr Zeit benötigt, um der Baum der angeforderten Revision zu erstellen. Daher resultiert auch der Grundsatz, möglichst keine Binärdateien in die Versionskontrolle aufzunehmen.
Jetzt 1 Monat kostenlos testen!
Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
- + Digitales Kundenkonto,
- + Zugriff auf das digitale Heft,
- + Zugang zum digitalen Heftarchiv,
- + Auf Wunsch: Weekly Newsletter,
- + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar