¿Escribir mensajes de compromiso como desarrollador en solitario?

30

En mis proyectos en los que el repositorio se comparte entre mí y otros programadores, siempre escribo mensajes de confirmación, incluso si soy el desarrollador principal.

Pero en aquellos proyectos en los que soy el desarrollador en solitario que trabaja en un proyecto, y el repositorio está alojado en mi computadora portátil personal, y ni siquiera está alojado por el cliente, por lo tanto, nadie más que yo vería los commits, si aún escribiera commit mensajes?

Hasta ahora los he estado escribiendo, pero he descubierto que nunca he vuelto y visto mis mensajes de confirmación. Me tomo un tiempo libre del desarrollo para escribir los mensajes, pero nunca más los vuelvo a ver.

¿Hay alguna buena razón para escribir mensajes de compromiso como desarrollador en solitario, o debería omitirlos para mantenerse enfocado en el desarrollo?

Haga clic en Upvote
fuente
14
"Nunca he regresado y he visto mis mensajes de confirmación", la primera vez que tendrá que regresar probablemente le proporcionará esa buena razón. En realidad, caminando en tus zapatos, probablemente haría compromisos silenciosos hasta que ocurra ese primer regreso
mosquito el
55
"Siempre escribo mensajes de confirmación, incluso si soy el desarrollador principal". ¿Crees que es inusual? Por supuesto, el desarrollador principal debe escribir mensajes, incluso más que los otros desarrolladores (que ya deberían hacerlo el 100% del tiempo).
AlbeyAmakiir
77
Los mensajes de confirmación son oro puro cuando comienza a mantener versiones anteriores de su software, y no solo las más nuevas.

Respuestas:

43

Bueno, aquí hay una razón: si de repente te das cuenta de que algo se ha roto en los últimos cientos de confirmaciones (posible si comprometes en cada edición menor, menos factible si, como yo, confirma solo instantáneas "estables"), puedes hacerlo más fácilmente encuentre dónde ha insertado el error si ha escrito mensajes de confirmación claros, en lugar de "correcciones de errores" (La cadena favorita de un colega, creo). Claro, puedes svn logusar SCM o lo que sea que estés usando, pero debería ser más fácil al revés.

Además, los mensajes de confirmación lo obligan a pensar exactamente qué ha hecho como cambio y, creo, resumiendo en su mente cómo sería mejor continuar mejorando el proyecto.

K.Steff
fuente
13
+1 para el último párrafo. Me parece que escribir un mensaje de confirmación adecuado lleva casi cero tiempo, ya que siempre sé por qué hice el cambio.
Stephen Darlington
55
Para mis cosas en solitario, tengo mi mensaje de confirmación antes de trabajar en algo. Hago algo pequeño (¡apunte por 30-45 minutos ... tengo una esposa e hijos aquí!), Y lo comprometo. ¿Tal vez podrías llamarlo desarrollo impulsado por el compromiso?
corsiKa
52

Intento siempre. ¿Cuántas veces miras hacia atrás y piensas: "Hombre, qué estaba haciendo cuando hice este cambio"? Lo hago todo el tiempo. 30 segundos de escribir un mensaje pueden ahorrarte 20 minutos de trabajo tratando de recordar.

kemiller2002
fuente
12
También ayuda al crear un informe mensual. La lista de mensajes de confirmación es un gran comienzo para el informe
Mhoran_psprep
2
Sí, y realmente solo toma una vez donde lo necesitas para pagar el tiempo que lleva hacer el comentario.
tzerb
20

¿Honestamente crees que la sobrecarga de escribir entre 40 y 80 caracteres en inglés simple es una sobrecarga significativa para una confirmación, o estás buscando una excusa para ser perezoso?

Tal vez su problema esté expresando en inglés simple por qué realizó el cambio, en cuyo caso, es posible que necesite revisar el propósito del cambio, incluso hasta el punto de preguntarse si realmente necesita hacerlo.

Mi consejo es que no pienses que porque estás volando solo puedes romper las reglas. Permanezca profesional en todo momento y agregue mensajes de confirmación significativos. Como han señalado otros respondedores, algún día lo agradecerá.

Mattnz
fuente
14
  • No siempre serás un desarrollador en solitario.

  • Eventualmente romperá su base de código e intentará restaurarla. Los buenos mensajes de confirmación te ahorrarán horas.

  • No puedes recordar en qué estabas trabajando hace tres semanas, ¿verdad?

  • Los mensajes de compromiso deben ser muy claros. Si no lo están, entonces no ha terminado de trabajar en una tarea, o una sola tarea se ha extendido en dos o más tareas.

CodeART
fuente
7

Definitivamente, o de lo contrario, hace que las funciones como ramificar y fusionar sean mucho más difíciles de usar. Y usted va a querer usarlos, incluso si desarrollador en solitario.

jmruc
fuente
6

Una posible razón para hacerlo: te obliga a pensar de manera más abstracta sobre el cambio que acabas de hacer, y a estructurar los cambios.

Si no tiene sentido, quizás solo comente los cambios importantes, o los que cambian la funcionalidad existente, en caso de que alguna vez esté buscando la fuente de un comportamiento extraño.

Steve Bennett
fuente
Interesante volver a visitar esta respuesta. Recientemente he tomado una posición un tanto extrema: no hay mensajes de confirmación. Pero eso es en un proyecto HTML / JS bastante plano en el que no puedo imaginar intentar rastrear una regresión. Cualquier esfuerzo dedicado a escribir mensajes de confirmación seguramente se gastará mejor en otro lugar. (¡No todos los proyectos están en esta categoría!)
Steve Bennett
4

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.

Kaz
fuente
3

Si bien aún no ha visto la necesidad de ver sus mensajes de confirmación, puede estar muy agradecido por ellos en el futuro. Deberías seguir escribiéndolos incluso para ti. Hay muchas razones por las que podrían ser útiles más tarde (olvidó por qué estaba agregando una función, localizar archivos faltantes, etc.)

Aquí hay una pregunta relacionada con el propósito de los mensajes de confirmación: ¿Por qué debo escribir un mensaje de confirmación ?

hfitzwater
fuente
3

Siempre me comprometo con un mensaje significativo sobre los cambios, y lo hago con frecuencia con los cambios incrementales.

¿Es esto siempre lo más útil? No, no hay problema en hacerlo. Si necesita volver a una etapa anterior en progreso, sus mensajes le permitirán saber dónde se encuentra y qué ha hecho. También se puede usar para realizar un seguimiento del progreso de un proyecto. En cuanto a ser visto como una pérdida de tiempo, ¿son los 30 segundos necesarios para anotar una oración realmente tan consecuente?


fuente
3

No veo ninguna diferencia con respecto a los mensajes de confirmación, ya sea que esté trabajando en un equipo o no. Recuerdas lo que hiciste aquí o allá solo por un tiempo limitado, y después de eso es lo mismo que si alguien más lo hubiera escrito. Por lo tanto, debe escribir mensajes tan buenos como lo haría para las otras personas.

Malcolm
fuente