Non costa quasi nulla usare la cronologia dei commit mantenuta dal sistema di controllo della versione. Tuttavia, durante uno sforzo importante di refactoring (o riorganizzazione / pulizia), le funzioni, le classi e persino i namespace verranno spostati; a volte diversi file verranno uniti insieme e altri file verranno suddivisi. Queste modifiche spesso portano alla perdita della cronologia di commit originale di alcuni file.
Secondo la mia opinione personale, l'aggiornamento dell'organizzazione del progetto è più importante della conservazione della cronologia del codice sorgente. Una buona organizzazione del progetto consente di aggiungere continuamente nuove funzionalità con uno sforzo ragionevole, mentre il valore della cronologia del codice sorgente sembra dubbio.
Inoltre, con l'uso del test delle unità, i problemi di regressione vengono rapidamente identificati. Finché l'ultima versione continua a soddisfare tutti i requisiti del software, dobbiamo effettivamente conservare la cronologia del codice sorgente?
Comprendo che qualsiasi codice sorgente spedito deve essere conservato a causa della necessità di fornire supporto ai clienti senza richiedere loro di eseguire un aggiornamento della versione principale. Ma a parte questo, c'è qualche valore nel mantenere la cronologia del codice sorgente commessa?
La cronologia del commit del codice sorgente ha alcun ruolo nelle comunicazioni tra i membri del team? Cosa succede se aboliamo la cronologia dei commit, ma ci affidiamo invece a "codice sorgente" + "codice test unità" per la comunicazione?
L'esistenza della cronologia dei commit rende compiacenti la documentazione a lungo termine di informazioni importanti sul progetto, come i principali cambiamenti di progettazione / requisiti e i flussi di pensiero che hanno guidato tali cambiamenti?