Di 'che hai impegnato un file di tipo foo nel tuo preferito vcs
:
$ vcs add data.foo
$ vcs commit -m "My data"
Dopo la pubblicazione ti rendi conto che c'è un formato dati migliore bar . Per convertire puoi utilizzare una di queste soluzioni:
$ vcs mv data.foo data.bar
$ vcs commit -m "Preparing to use format bar"
$ foo2bar --output data.bar data.bar
$ vcs commit -m "Actual foo to bar conversion"
o
$ foo2bar --output data.foo data.foo
$ vcs commit -m "Converted data to format bar"
$ vcs mv data.foo data.bar
$ vcs commit -m "Renamed to fit data type"
o
$ foo2bar --output data.bar data.foo
$ vcs rm data.foo
$ vcs add data.bar
$ vcs commit -m "Converted data to format bar"
Nei primi due casi la conversione non è un'operazione atomica e l'estensione del file è "sdraiata" nel primo commit. Nell'ultimo caso la conversione non verrà rilevata come un'operazione di spostamento, quindi per quanto posso dire sarà difficile tracciare la cronologia dei file attraverso il commit. Anche se preferirei istintivamente l'ultima soluzione, non posso fare a meno di pensare che la cronologia della traccia debba avere una priorità molto alta nel controllo della versione. Qual è la cosa migliore da fare qui?