lunghe code in git o svn

1

Sto codificando un programma che ha dati persistenti (il monitor MELT , relativo per GCC MELT ). I dati sono persistenti perché dovrebbero essere letti e sovrascritti dalla maggior parte delle esecuzioni. (Questi dati sono in particolare fatti di alberi di sintassi astratti)

Attualmente, questo dato persistente è un database Sqlite . Ovviamente, lo sto sostenendo in formato testuale, ottenuto da dump sqlite , e voglio gestire questo dump testuale con un sistema di controllo della versione (probabilmente git , ma forse anche sovversione ....).

A meno che non prenda precauzioni speciali, questi dump SQL probabilmente avranno linee piuttosto lunghe (ad esempio diverse dozzine di kilobyte). Le ampie colonne SQL probabilmente contengono testo JSON di molti kilobyte.

Vorrebbe git (e svn ) essere più felice con le linee più corte (in particolare si comporterebbero più lentamente con le linee lunghe, o i repository usano molto più spazio su disco)?

Probabilmente non sono per lo più interessato ai comandi diff (ad esempio git diff o svn diff ), perché mi aspetto che utilizzarli per tale dump testuale non sia molto interessante per gli sviluppatori umani.

Sto codificando le routine di persistenza, quindi sono in grado di modificare leggermente il formato (ad es. aggiungere nuove righe in alcuni testi JSON, che sqlite3 dump sta riversando verbatim).

Se sei curioso, la mia istantanea di codice corrente si trova su link e contiene un state-monimelt.sql dump file (che ovviamente diventerà molto più grande, forse vicino o sopra un megabyte)

    
posta Basile Starynkevitch 21.04.2014 - 20:29
fonte

1 risposta

3

Svn memorizza fondamentalmente le differenze tra le versioni successive, quindi rompere le linee in modo da ridurre al minimo le dimensioni del diff dovrebbe ridurre al minimo la quantità di spazio di archiviazione che si utilizza. Git comprime le sue revisioni in qualche modo in modo diverso, quindi rompere le linee potrebbe non avere importanza. Che sia significativo nella pratica, puoi solo misurarlo. La mia raccomandazione è di provare manualmente in entrambi i modi e vedere se fa abbastanza differenza per preoccuparsi di automatizzare. Assicurati di eseguire un git gc per ottenere l'effetto completo della compressione di git.

    
risposta data 21.04.2014 - 21:11
fonte

Leggi altre domande sui tag