Quale VCS è efficiente per la memorizzazione di piccole modifiche in file di testo di grandi dimensioni?

5

Un'agenzia governativa pubblica un file di testo con migliaia di record. L'intero file è di circa 60 MB. Ogni giorno il file ha circa 60 record nuovi o modificati.

Abbiamo bisogno di convalidare alcune informazioni su quel file e, a fini di controllo, potremmo aver bisogno di recuperare il file come era in certe date.

Pensavo di poter usare un VCS per memorizzare il file usando git, ma capisco che git memorizza l'intero file di testo gzip, quindi il file 60BM avrà ancora bisogno di circa 30 MB per archiviare la versione di tutti i giorni.

Mi chiedo se uno dei VCS liberi memorizza solo i file diff / patch.

    
posta MiguelM 20.09.2012 - 00:22
fonte

2 risposte

15

È vero che Git memorizza solo revisioni complete di interi file. Tuttavia, non semplicemente li memorizza nel file system come singoli file. Invece, li memorizza in un file pack .

Un file pack è, in senso lato, ogni revisione di ogni file dell'intera cronologia dell'intero repository concatenato in un singolo file e quindi compresso . A causa dell'enorme quantità di ridondanza questo comprime incredibilmente bene, dato che i compressori amano la ridondanza.

Questo comprimerà non solo le diverse revisioni dei singoli file (dato che la revisione n e n + 1 di solito sarà per lo più identica), questo anche comprenderà blocchi identici di contenuto in non correlato file, come le intestazioni delle licenze GPL (il che è qualcosa che i formati di archiviazione basati su patch non possono fare con la stessa facilità).

In generale, un repository Git finirà più piccolo di un repository Subversion, anche se quest'ultimo conserva solo le patch.

    
risposta data 20.09.2012 - 01:58
fonte
6

I understand git stores the entire text file gzipped,

Questo è ciò che accade immediatamente. Ma spesso riorganizza questo in serie di modifiche che sono compresse.

I wonder if one of the free VCS stores only diff/patch files.

Tutti loro lo fanno. Ogni singolo. Persino SCCS del 1972, e probabilmente altri prima.

    
risposta data 20.09.2012 - 00:28
fonte

Leggi altre domande sui tag