Su proyecto casi siempre debe usar el tiempo pasado . En cualquier caso, el proyecto siempre debe usar el mismo tiempo para lograr consistencia y claridad.
Entiendo algunos de los otros argumentos que argumentan usar el tiempo presente, pero generalmente no se aplican. Los siguientes puntos son argumentos comunes para escribir en tiempo presente y mi respuesta.
- Escribir en tiempo presente le dice a alguien qué hará la aplicación del compromiso , en lugar de lo que hiciste.
Esta es la razón más correcta por la que uno querría usar el tiempo presente, pero solo con el estilo de proyecto correcto. Esta forma de pensar considera todas las confirmaciones como mejoras o características opcionales, y usted es libre de decidir qué confirmaciones mantener y cuáles rechazar en su repositorio particular.
Este argumento funciona si se trata de un proyecto verdaderamente distribuido. Si se trata de un proyecto distribuido, probablemente esté trabajando en un proyecto de código abierto. Y probablemente sea un proyecto muy grande si realmente está distribuido. De hecho, probablemente sea el kernel de Linux o Git. Dado que es probable que Linux haya causado que Git se haya extendido y gane popularidad, es fácil entender por qué las personas considerarían su estilo como la autoridad. Sí, el estilo tiene sentido con esos dos proyectos. O, en general, funciona con proyectos grandes, de código abierto y distribuidos .
Dicho esto, la mayoría de los proyectos en control de fuente no funcionan así. Suele ser incorrecto para la mayoría de los repositorios. Es una forma moderna de pensar sobre los commits: los repositorios Subversion (SVN) y CVS apenas podrían soportar este estilo de registros de repositorios. Por lo general, una rama de integración manejaba el filtrado de registros incorrectos, pero generalmente no se consideraban "opcionales" o "características agradables".
En la mayoría de los escenarios, cuando realiza confirmaciones en un repositorio de origen, está escribiendo una entrada de diario que describe lo que cambió con esta actualización, para facilitar a otros en el futuro comprender por qué se realizó un cambio. Por lo general, no es un cambio opcional: se requiere que otras personas en el proyecto lo fusionen o lo modifiquen. No se escribe una entrada de diario como "Querido diario, hoy me conoce a un niño y le dice hola.", Pero en lugar de escribir "me encontré con un niño y le dije hola a mí."
Finalmente, para tales proyectos no distribuidos, el 99.99% del tiempo que una persona leerá un mensaje de confirmación es para leer el historial: el historial se lee en tiempo pasado. El 0.01% de las veces decidirá si deben aplicar o no este commit o integrarlo en su rama / repositorio.
- Consistencia. Así es en muchos proyectos (incluido el propio git). También las herramientas git que generan confirmaciones (como git merge o git revert) lo hacen.
No, le garantizo que la mayoría de los proyectos que alguna vez iniciaron sesión en un sistema de control de versiones han tenido su historial en tiempo pasado (no tengo referencias, pero probablemente sea correcto, considerando que el argumento del tiempo presente es nuevo desde Git). Los mensajes de "revisión" o mensajes de confirmación en tiempo presente solo comenzaron a tener sentido en proyectos verdaderamente distribuidos; vea el primer punto anterior.
- La gente no solo lee el historial para saber "qué sucedió con esta base de código", sino también para responder preguntas como "qué sucede cuando selecciono este commit" o "qué tipo de cosas nuevas sucederán a mi base de código debido a estos commits Puedo o no fusionarme en el futuro ".
Ver el primer punto. El 99,99% de las veces que una persona leerá un mensaje de confirmación es para leer el historial: el historial se lee en tiempo pasado. El 0.01% de las veces decidirá si deben aplicar o no este commit o integrarlo en su rama / repositorio. 99.99% late 0.01%.
- Por lo general es más corto
Nunca he visto un buen argumento que diga usar tiempo / gramática inapropiados porque es más corto. Probablemente solo guardará 3 caracteres en promedio para un mensaje estándar de 50 caracteres. Dicho esto, el tiempo presente en promedio probablemente será unos pocos caracteres más cortos.
- Puede nombrar confirmaciones más consistentemente con títulos de tickets en su rastreador de problemas / funciones (que no usan el tiempo pasado, aunque a veces el futuro)
Los tickets se escriben como algo que está sucediendo actualmente (por ejemplo, la aplicación muestra un comportamiento incorrecto cuando hago clic en este botón) o como algo que debe hacerse en el futuro (por ejemplo, el texto necesitará una revisión por parte del editor).
Historia (es decir, los mensajes de confirmación) se escribe como algo que se hizo en el pasado (por ejemplo, el problema fue fijado).