Sono stato l'unico committer del progetto TXR e ho tenuto un ChangeLog dettagliato fin dall'inizio del progetto. Questo è vicino a circa 11.000 linee e in crescita:
http://www.kylheku.com/cgit/txr/tree/ChangeLog
(I messaggi di commit nel repository sono solo una copia di ciò che accade nel ChangeLog.)
[Modifica del 2016: da metà 2015 non mantengo più un file ChangeLog; tuttavia, i messaggi di commit sono scritti in un formato conforme alle convenzioni Git e ChangeLog contemporaneamente. Lo stesso livello di dettaglio è presente, in un modo che non causa problemi di unione. Un file ChangeLog potrebbe essere ricostruito meccanicamente da questi commenti.]
Sì, più di una volta sono tornato a un vecchio messaggio di commit associato a una modifica che ha rotto qualcosa (scoperto con l'aiuto di git bisect
). Il messaggio mi ha aiutato a capire cosa stavo facendo.
Nel ChangeLog puoi sapere quando una funzione, tipo, macro o variabile globale è stata introdotta per la prima volta e quando è stata successivamente toccata dalle modifiche.
Ma il motivo principale per scrivere messaggi di commit dettagliati come questi quando si lavora da soli è questo: si trovano bug quando si esegue questa operazione .
Scrivere un messaggio di commit dettagliato ha vantaggi simili a una revisione del codice del commit da parte di qualcun altro. Il valore in una recensione di commit non è tanto che qualcuno sta controllando il tuo codice, ma che devi spiegare le tue modifiche a un altro sviluppatore.
Quando provi a spiegare le cose, a volte scopri che non hanno senso.
Un altro motivo: puoi sorprenderti facendo un cambiamento inutile . Scrivendo un commento di commit dettagliato, acquisisci una visione di alto livello di ciò che stai facendo e quindi a volte ti trovi di fronte al fatto che non è un buon cambiamento.
A volte ho apportato modifiche, quando nel mezzo della scrittura della voce ChangeLog mi sono reso conto che questo sarebbe stato un git reset --hard
(buttare via questi cambiamenti inutili) piuttosto che git commit -a
.