Perché git è così lento con file di grandi dimensioni?


8

Stavo cercando di usare git per gestire le mie foto (backup / scattare istantanee). L'intera libreria ha diversi GB. La maggior parte dei file sono JPG di 2-3M. Quando stavo aggiungendo i file nel repository, sembrava che ci volessero diversi giorni. L'utilizzo della CPU è stato sempre vicino al 100%.

C'è un motivo per cui git dovrebbe essere lento su file di grandi dimensioni?

ps so che git non è stato progettato per questo.

Risposte:


7

Git per impostazione predefinita comprime i file. I JPEG per impostazione predefinita sono già compressi. Non è che si tratta di file di grandi dimensioni, è che sono file compressi.

Noterai lo stesso effetto aggiungendo i file ZIP a un repository git.

EDIT: c'è un thread interessante su /programming/7102053/git-pull-without-remotely-compressing-objects sulla compressione.


1
Come posso dire a git di non comprimere i file? Non ho necessariamente bisogno di efficienza dello spazio. Voglio che sia il più veloce possibile. Grazie!
Wooding

2
C'è una serie di switch con cui puoi giocare git config, inclusi core.compressione pack.window. Visto che in realtà non ho mai provato a eseguire git senza compressione, YMMV. Per favore pubblica ciò che hai scoperto, per aiutarci tutti a imparare dalla tua esperienza.

@Eroen, hai ragione. Ho votato il tuo commento.

2
Git inoltre (e verifica) un hash sha1 di ogni file ogni volta che lo utilizza, che può richiedere del tempo anche per file di grandi dimensioni.
Eroen,

3
@RandolphWest: buono, ma sbagliato. la compressione zlib può essere disattivata da $ git set core.compression 0. sha1 è decine di MiB al secondo, ma potrebbero interferire negativamente con condizioni di memoria insufficiente.
Eroen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.