He sido el único responsable del proyecto TXR, y he mantenido un ChangeLog detallado desde muy temprano en el proyecto. Esto tiene cerca de 11,000 líneas y está creciendo:
http://www.kylheku.com/cgit/txr/tree/ChangeLog
(Los mensajes de confirmación en el repositorio son solo una copia de lo que se incluye en ChangeLog).
[Edición de 2016: a mediados de 2015, ya no mantengo un archivo ChangeLog; sin embargo, los mensajes de confirmación se escriben en un formato que se ajusta a las convenciones de Git y ChangeLog al mismo tiempo. Existe el mismo nivel de detalle, de una manera que no causa problemas de fusión. Un archivo ChangeLog podría reconstruirse mecánicamente a partir de estos comentarios.]
Sí, más de una vez volví a un antiguo mensaje de confirmación asociado con un cambio que rompió algo (descubierto con la ayuda de git bisect
). El mensaje me ayudó a entender lo que estaba haciendo.
En ChangeLog puede saber cuándo se introdujo por primera vez una función, tipo, macro o variable global y cuándo fue tocada posteriormente por los cambios.
Pero la razón principal para escribir mensajes de confirmación detallados como estos cuando trabaja solo es la siguiente: encuentra errores al hacer esto .
Escribir un mensaje de confirmación detallado tiene beneficios similares a una revisión de código de su confirmación por parte de otra persona. El valor en una revisión de confirmación no es tanto que alguien esté revisando su código, sino que tiene que explicar sus cambios a otro desarrollador.
Cuando intentas explicar las cosas, a veces descubres que no tienen sentido.
Otra razón: puedes sorprenderte haciendo un cambio inútil . Al escribir un comentario de confirmación detallado, captura una vista de alto nivel de lo que está haciendo y, a veces, se enfrenta al hecho de que no es un buen cambio.
A veces he realizado cambios, cuando en medio de la escritura de la entrada ChangeLog me di cuenta de que esto sería un git reset --hard
(descartar estos cambios inútiles) en lugar de git commit -a
.