Warum ist Git bei großen Dateien so langsam?

8

Ich habe versucht, meine Bilder mit git zu verwalten (Sichern / Schnappschüsse machen). Die gesamte Bibliothek umfasst mehrere GB. Die meisten Dateien sind JPGs von 2-3M. Als ich die Dateien zum Repository hinzufügte, schien es mehrere Tage zu dauern. Die CPU-Auslastung lag immer nahe 100%.

Gibt es einen Grund, warum Git bei großen Dateien langsam sein sollte?

ps Ich weiß, Git wurde nicht dafür entwickelt.

Holzungen
quelle

Antworten:

7

Git komprimiert standardmäßig Dateien. JPEGs sind standardmäßig bereits komprimiert. Es sind nicht große Dateien, sondern komprimierte Dateien.

Sie werden den gleichen Effekt feststellen, wenn Sie einem Git-Repository ZIP-Dateien hinzufügen.

BEARBEITEN: Es gibt einen interessanten Thread unter /programming/7102053/git-pull-without-remotely-compressing-objects über die Komprimierung.

Gemeinschaft
quelle
1
Wie kann ich git anweisen, keine Dateien zu komprimieren? Ich brauche nicht unbedingt Raumeffizienz. Ich möchte, dass es so schnell wie möglich geht. Vielen Dank!
Woodings
2
Es gibt eine Vielzahl von Schaltern, mit denen Sie spielen können git config, einschließlich core.compressionund pack.window. Da ich noch nie versucht habe, Git ohne Komprimierung auszuführen, YMMV. Bitte posten Sie, was Sie entdeckt haben, damit wir alle aus Ihren Erfahrungen lernen können.
@Eroen, du machst einen guten Punkt. Ich habe Ihren Kommentar abgestimmt.
2
Git erstellt (und überprüft) außerdem jedes Mal, wenn es verwendet wird, einen sha1-Hash für jede Datei. Dies kann auch bei großen Dateien einige Zeit dauern.
Eroen
3
@ RandolphWest: Gut, aber falsch. Die zlib-Komprimierung kann durch deaktiviert werden $ git set core.compression 0. sha1 ist zehn MiB pro Sekunde, aber sie können die Speicherbedingungen beeinträchtigen.
Eroen