Dlaczego git jest taki wolny przy dużych plikach?

8

Próbowałem użyć git do zarządzania moimi zdjęciami (tworzenie kopii zapasowych / robienie zdjęć). Cała biblioteka ma kilka GB. Większość plików to pliki JPG 2-3M. Kiedy dodawałem pliki do repozytorium, wydawało się, że zajmuje to kilka dni. Wykorzystanie procesora było zawsze prawie 100%.

Czy istnieje powód, dla którego git powinien działać wolno na dużych plikach?

ps Wiem, że git nie został zaprojektowany do tego.

lasy
źródło

Odpowiedzi:

7

Git domyślnie kompresuje pliki. Pliki JPEG domyślnie są już skompresowane. Nie chodzi o to, że to duże pliki, tylko o to, że są skompresowane.

Zauważysz ten sam efekt, dodając pliki ZIP do repozytorium git.

EDYCJA: Istnieje interesujący wątek na /programming/7102053/git-pull-without-remotely-compressing-objects na temat kompresji.

Społeczność
źródło
1
Jak mogę powiedzieć gitowi, aby nie kompresował plików? Niekoniecznie potrzebuję miejsca. Chcę, żeby było tak szybko, jak to możliwe. Dzięki!
tarcica
2
Istnieje wiele przełączników, w które możesz grać, w git configtym core.compressioni pack.window. Ponieważ nigdy nie próbowałem uruchomić git bez kompresji, YMMV. Opublikuj swoje odkrycia, aby pomóc nam wszystkim wyciągnąć wnioski z Twojego doświadczenia.
@Eroen, masz rację. Głosowałem za twoim komentarzem.
2
Git tworzy również (i sprawdza) skrót sha1 każdego pliku za każdym razem, gdy go używa, co również może zająć trochę czasu dla dużych plików.
Eroen
3
@RandolphWest: Dobrze, ale źle. Kompresję zlib można wyłączyć za pomocą $ git set core.compression 0. sha1 to dziesiątki MiB na sekundę, ale mogą źle wpływać na warunki niskiej pamięci.
Eroen