¿Por qué debería escribir un mensaje de confirmación? No quiero y creo que es estúpido cada vez.
Una interfaz gráfica de usuario que uso, que quedará sin nombre, te obliga a hacerlo. Escucho que otros lo hacen cada vez, incluso si están usando el VCS en la línea de comando.
Si me comprometo varias veces al día y no he terminado una función, ¿sobre qué estoy escribiendo? SOLO escribo un mensaje después de muchas confirmaciones y siento que es hora de una mini etiqueta o cuando hago una etiqueta real.
¿Tengo razón o me estoy perdiendo algo? También estoy usando un sistema distribuido
dvcs
version-control
usuario2528
fuente
fuente
Respuestas:
A todas las personas que dicen "comprometerse solo cuando tiene un mensaje útil y bien pensado para escribir, y cuando su función está 100% completa y tiene pruebas unitarias para ello", les digo: todavía están en la mentalidad SVN .
Si está utilizando git , esto es lo que yo llamaría un flujo de trabajo inteligente:
git rebase -i
desde el primer commit 'desordenado' que agregaste y arreglaste tu historial local aplastando, editando, omitiendo y limpiando tu historial reciente en commit lógicos y limpios con buenos mensajes .Tenga en cuenta que el paso 3 es cuando termina con esas buenas confirmaciones que buscaba, y que usando SVN tendría que abstenerse de comprometerse hasta que haya realizado los primeros dos pasos, que es lo que sugieren la mayoría de las otras respuestas. IOW, no desea infligir su código medio no escrito en otros, por lo que no se compromete durante una semana, hasta que termine su función. No está utilizando el control de versiones en todo su potencial.
También tenga en cuenta que en cualquier lugar entre los pasos 1 y 3, puede realizar
git push
sus cambios en su propio espejo de repositorio privado en el servidor para obtener copias de seguridad gratuitas si su HDD portátil se apaga.fuente
Porque cuando un mal mantenedor está buscando un error y descubre que se agregó en rev. xyz, él querrá saber qué rev. se suponía que xyz debía hacer.
fuente
Comentas tu código fuente, ¿verdad?
Escribes los mejores comentarios, los que dicen por qué ya que el código solo dice cómo .
El mensaje de confirmación es un comentario de este tipo y, por lo tanto, es muy importante y cuanto más piense en hacerlo bien, más útil será para un futuro mantenedor del software.
Para cualquier software activo, este comentario en particular terminará mostrándose en algo como
(encontrado en http://longair.net/blog/2009/04/25/a-few-git-tips/ ). Esto permite una vista de pájaro de quien ha trabajado en el software cuando , y lo que hicieron.
Tenga en cuenta que este es el objetivo final del comentario de compromiso, es decir, aparecer en una lista que dice " qué " a su futuro yo o su colega, y ESA es la razón por la que debe tener cuidado al escribir buenos mensajes de compromiso.
fuente
Si el mensaje de confirmación le parece estúpido, entonces parece que está utilizando las confirmaciones incorrectas.
Los compromisos deben hacerse por una buena razón: deben estar relacionados con las tareas que ha desglosado para la función en la que está trabajando. Ya sea que esas tareas sean formales o solo en su mente, cada cambio que realice debe completar más o menos una tarea y, por lo tanto, ser funcional de alguna manera.
Entonces, sus mensajes de confirmación tienen un propósito mucho mejor. Describa la tarea que terminó y, si no se realiza un seguimiento en otro lugar, por qué se necesitaba esa tarea o para qué sirve:
Luego, usted u otros desarrolladores pueden explorar el repositorio o el historial de archivos y ver con bastante facilidad dónde ocurrieron ciertas evoluciones y por qué. O, si se determina que una revisión en particular es culpable de un error, el mensaje de confirmación dará una pista de por qué se colocó esa línea, de modo que no solo la elimine y posiblemente vuelva a generar algo que se pensó que era arreglado, y en su lugar puede arreglarlo de la manera correcta.
fuente
Cometer comentarios no resuelve todo. Siempre existe la posibilidad de que puedan confundir tanto como ayudan, especialmente cuando los desarrolladores están enojados por tener que ingresar a ellos. Intente esto: considérelos como un sendero de migas de pan en el bosque o un punto de ruta de alpinismo o balas trazadoras. Bien hecho, pueden delinear un camino confuso.
No hagas un gran problema con ellos. Se honesto:
Que sea breve y "panorama general". Si es posible, consulte un número de problema en su sistema de características / errores. Algunas IU de control de versiones incluyen un campo para este tipo de cosas.
fuente
Reduce la cantidad de WTF / minuto;)
lo que se traduce en un equipo más feliz (que no te odia) y una mejor salida del equipo potencialmente a un costo menor
fuente
Entonces, el resto de su equipo sabe WTF que está haciendo para verificar los cambios en el árbol del proyecto.
fuente
porque si no practicas ingresar mensajes de confirmación decentes, terminarás como mi colega que ingresa mensajes como
o
para confirmaciones con más de cien archivos modificados (¡no es broma aquí!).
Si te conviertes en tal desarrollador, te verás estúpido a los ojos del resto del mundo, no importa cuán estúpido creas que es solo ingresar un mensaje.
fuente
¿Por qué se compromete si los cambios no son significativos?
Solo comete cambios que tengan un significado. Por ejemplo, hice una refactorización bastante grande la otra semana, que me llevó unos 3 días. Tendría toneladas de compromisos durante ese tiempo. Algunos fueron cambios bastante pequeños ('cambió el nombre de la clase X a Y para reflejar una nueva responsabilidad' o 'movió el método Z () a la clase Q') y otros fueron realmente grandes. Cuando termino con una función / refactorización, verifico si algunos commits podrían ser aplastados (al menos git admite eso, no conozco otras herramientas), pero generalmente los dejo como están porque ayudan más tarde.
Supongo que no te comprometerías en el medio de editar una línea, por lo que debería tener un significado. Solo describe lo que hiciste desde la última confirmación.
fuente
imagina una condición cuando rompiste tu sistema haciendo algún cambio y date cuenta de esto después de varias confirmaciones por equipo. No recuerda cuál fue el cambio, pero recuerda que algo podría salir mal cuando estaba mejorando la función X o eliminando un archivo del módulo Y.
Pero desafortunadamente, el número de revisión no le dice cuándo cambió X o Y. Por lo tanto, es su elección leer todos los códigos confirmados durante los últimos N días o simplemente leer los mensajes de confirmación detallados que escribió (mucho más legibles que el código).
Por lo tanto, si escribe texto igual, aburrido, inútil y no relacionado en el mensaje de confirmación, porque tiene que hacerlo, es más dañino que tener un mensaje de confirmación. Porque en lugar de encontrar la raíz del error, un mensaje equivocado lo desorientará.
Por lo tanto, trate de escribir mensajes de confirmación significativos cada vez que confirme, lo que puede ayudarlo a usted y al mantenedor también.
fuente
Si está trabajando con otros, entonces los mensajes de confirmación son muy importantes para ver realmente lo que otros han hecho: buscar las diferencias para cada uno de ellos es mucho más trabajo y es posible que no entienda por qué alguien lo ha hecho. Si trabaja con otros y alguien (quizás no usted) tiene que mirar hacia atrás, por ejemplo, para rastrear cómo el comportamiento cambió desde la versión anterior de maneras inesperadas ... realmente está haciendo la vida difícil al no usar una pista útil en el compromiso mensaje.
Si está trabajando solo ... en un proyecto que está mayormente codificado 'tal cual' (por ejemplo, un sitio web o script simple), puedo ver más o menos de dónde viene. Si trabajo en algo así, solo me interesan la fecha / hora o los cambios más recientes cuando continúo trabajando en algo (tienes un punto para restaurar, pero eso solo importa durante el desarrollo, no después de que lo hayas implementado). El control de versiones es solo una forma de hacer copias de seguridad con algunas ventajas: estoy totalmente de acuerdo en que no se está haciendo un uso completo del sistema, pero en algunos proyectos a pequeña escala, eso podría no ser necesario.
Se me ocurrió la idea antes de que el Control de versiones se usara de dos maneras, una para documentar los cambios en el proyecto y otra como una ayuda para los desarrolladores en el lugar ... y esos dos son totalmente diferentes entre sí. Los mensajes de confirmación son muy importantes en un sentido y pueden ser inútiles en el otro.
fuente
Te estás perdiendo algo. No debe ser una razón para realizar una confirmación de lo contrario no estaría haciendo ella.
Todo lo que necesitas hacer en el comentario es poner la razón en palabras, incluso si es solo
wip: adding new state objects
fuente
Como muchos otros, codifico un poco en mi tiempo libre y uso un sistema de control de revisiones para rastrear tanto mi desarrollo como mis cambios. La cantidad de tiempo libre que tengo disponible varía mucho de semana a semana y de mes a mes. Muchas han sido las ocasiones en las que no tendría tiempo para codificar un proyecto durante semanas o incluso meses, y el tiempo que tenía normalmente oscilaría entre 10 minutos (día típico) y 40 minutos (buen día). Esas ciertamente no son buenas condiciones, especialmente para problemas de depuración.
Era esencial mantener notas que no se perdieran y que fueran fácilmente recuperables. Al final de cada sesión, el trabajo de la sesión se comprometería con un mensaje detallado. Luego podría revisar el historial de compromisos y seguir mi progreso y proceso de pensamiento. Esto me permitió retomar donde estaba la semana pasada, o el mes pasado con la menor cantidad de tiempo precioso perdido.
El punto que estoy tratando de ilustrar es que los buenos mensajes de confirmación lo ayudan a usted (y a cualquier otra persona que viene después de usted) a descubrir qué ha sucedido, qué ha estado sucediendo, a dónde van las cosas y, sobre todo, por qué.
fuente
Piénsalo lógicamente por un minuto. Cuando se compromete, eso significa que se hizo algo. Si no deja ningún mensaje, ¿cómo sabrán otras personas lo que se hizo?
fuente
Si no comenta sus confirmaciones, puede verse tentado a comentar el cambio en la fuente. Con el tiempo, eso puede saturar la fuente.
fuente
Los mensajes de confirmación son una forma rápida de saber qué está pasando en ese check-in y ayudarán a otros desarrolladores de su equipo cuando quieran saber qué aspecto del código cambió en qué revisiones (por muchas razones).
En una nota relacionada, sugeriría especificar el número de caso del rastreador de errores (espero que esté usando uno) en el mensaje de confirmación, por lo que sería útil para el futuro rastrear fácilmente las cosas.
fuente
Para que el responsable de ese código 1 año después sepa a quién buscar ese código atroz. :)
fuente
blame
característica de las VCS.