En otro intento por automatizar y reducir el tiempo
de escritura de un mensaje de commit y que sea algo útil a futuro, se
me ocurrió generar un script que se ocupe de armar un template
dinámico, es decir, autocompleta todo lo que puede, acelerando el
proceso y normalizando los mensajes de commit, más aún cuando se trata
de commits atómicos y muy similares.
Es decir, al ejecutar git-commit-message
dentro del directorio de un repositorio git, se a a generar el
siguiente mensaje:
use git-remote-geturl to prevent leak tokens
@ 00:09 hs
De dónde salió el Subject?, simplemente copia el último subject ya
que si estás realizando commits atómicos y/o tareas similares, es muy
probable que puedas reutilizarlo y de no servir, lo reescribís, similar
al template estático.
Además se agregó el tiempo gastado? Se calcula de 2 posibles maneras:
a. Si el último commit es de hoy, se calcula la diferencia de tiempo.
b. Caso contrario se usa el tiempo de último journal
Si no están dadas las condiciones a y b se obtiene @ 00:00 hs,
nuevamente como el template estático.
Ahora bien, si en lugar de ejecutar git-commit-message en una consola,
lo hacemos desde vim en el momento en que git nos solicita
ingresar el mensaje, el script detecta el archivo que se esta por
commitear, por ejemplo el archivo test.txt y lo utiliza como prefijo
(sin extensión) similar a Conventional Commits.
test: use git-remote-geturl to prevent leak tokens
@ 00:09 hs
Y si el archivo estuviese en un directorio, por ejemplo doc/test.txt,
el resultando sería el siguiente:
doc/test: use git-remote-geturl to prevent leak tokens
@ 00:09 hs
De esta manera git-commit-message en parte normaliza la estructura de
los mensajes y al mismo tiempo simplifica el proceso de escritura.