Fui o único responsável pelo projeto TXR e mantive um ChangeLog detalhado desde o início do projeto. Isso tem quase 11.000 linhas de comprimento e está crescendo:
http://www.kylheku.com/cgit/txr/tree/ChangeLog
(As mensagens de confirmação no repositório são apenas uma cópia do que ocorre no ChangeLog.)
[Edição de 2016: em meados de 2015, não tenho mais um arquivo ChangeLog; no entanto, as mensagens de confirmação são gravadas em um formato compatível com as convenções Git e ChangeLog ao mesmo tempo. O mesmo nível de detalhe existe, de uma maneira que não causa problemas de mesclagem. Um arquivo ChangeLog pode ser reconstruído mecanicamente a partir desses comentários.]
Sim, mais de uma vez, voltei a uma antiga mensagem de confirmação associada a uma alteração que quebrou algo (descoberta com a ajuda de git bisect
). A mensagem me ajudou a entender o que estava fazendo.
No ChangeLog, é possível saber quando uma função, tipo, macro ou variável global foi introduzida pela primeira vez e quando foi posteriormente tocada por alterações.
Mas o principal motivo para escrever mensagens de confirmação detalhadas como essas ao trabalhar sozinho é o seguinte: você encontra erros ao fazer isso .
Escrever uma mensagem de confirmação detalhada traz benefícios semelhantes a uma revisão de código de sua confirmação por outra pessoa. O valor em uma revisão de confirmação não é tanto que alguém está verificando seu código, mas que você precisa explicar suas alterações em outro desenvolvedor.
Quando você tenta explicar as coisas, às vezes descobre que elas não fazem sentido.
Outro motivo: você pode se fazer uma mudança inútil . Ao escrever um comentário de confirmação detalhado, você captura uma visão de alto nível do que está fazendo e, às vezes, é confrontado pelo fato de que não é uma boa mudança.
Às vezes, eu fiz alterações quando, no meio da redação da entrada do ChangeLog, percebi que isso seria um git reset --hard
(jogar fora essas mudanças inúteis) em vez de git commit -a
.