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)