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.

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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.