Sto progettando un file in formato append-only ("journaled"), e mi piacerebbe che fosse amichevole verso l'archiviazione in VCS (git / Mercurial / ...).
Da un lato, mi piacerebbe che dopo ogni modifica, solo il delta (differenza) dallo stato del file precedente fosse stato aggiunto al repository (ad esempio alcuni byte finali), non l'intero contenuto del file. Quindi, per questo, sto considerando di creare il formato "pseudo-testo", cioè non un byte NUL (0x00) nei contenuti (o forse anche qualche sottoinsieme più severo di UTF-8), per renderlo facilmente diffondibile da git / Mercurial.
D'altra parte, il formato di file "pseudo-testo" non sarebbe predisposto alla fusione, sarebbe totalmente paralizzato il contenuto. Quindi, per evitare questa possibilità, sono propenso a renderlo "binario", anche se solo mettendo un byte NUL all'offset 0 nel file. Ma poi, fondersi anche per il "testo", ma i formati di file strutturati non sono sempre realmente possibili, anche per casi "tipici" come il codice sorgente, quindi forse non c'è bisogno di preoccuparsi qui? Sono abbastanza sicuro che ci saranno totalmente conflitti dappertutto se qualcuno cerca di unire questi file, quindi potrebbe essere sufficiente un segnale di avvertimento.
Hai avuto esperienze con scelte simili in passato? Quale scelta dovrei prendere e perché?