GitHub - thisdougb/git-time-hooks: Personal time tracking with Git hooks.
Extracto
Personal time tracking with Git hooks. Contribute to thisdougb/git-time-hooks development by creating an account on GitHub.
Resumen
Resumen Principal
git-time-hooks es una solución innovadora diseñada para la automatización del seguimiento de tiempo dentro de los flujos de trabajo de desarrollo basados en Git. Su función principal es integrar automáticamente los datos de tiempo invertido en las mensajes de commit de fusión (merge commits) al consolidar una rama de característica (feature branch). Este mecanismo permite a los equipos y desarrolladores obtener una visión clara del esfuerzo dedicado a cada nueva funcionalidad. La motivación subyacente de esta herramienta es profunda: utilizar estos datos de tiempo para inferir la entropía presente en los procesos de desarrollo o en la base de código misma, lo que ofrece un valioso insumo para la optimización de procesos y la mejora continua. La simplicidad de su instalación, ya sea copiando los hooks directamente o utilizando un Makefile para una implementación automatizada, facilita su adopción. Representa un avance hacia una mayor transparencia y toma de decisiones basada en datos en la gestión de proyectos de software, transformando un aspecto tradicionalmente manual y propenso a errores en una operación fluida y estandarizada.
Elementos Clave
- Seguimiento Automático del Tiempo en Fusiones:
git-time-hooksintroduce un sistema donde el tiempo dedicado a una rama de característica es capturado y automáticamente insertado en el mensaje del commit de fusión. Este proceso se activa al mergear la rama, presentando el tiempo en un formato legible comoTime spent on [rama]: 0d:0h:3m secs=194, lo que ofrece una métrica concreta del esfuerzo. - Integración Nativva con Git: El sistema se implementa mediante un par de Git hooks, específicamente
commit-msgyprepare-commit-msg. Estos scripts se alojan en el directorio.git/hooks/del repositorio, lo que garantiza una integración profunda y transparente con las operaciones estándar de Git sin requerir software externo complejo o modificaciones significativas en el flujo de trabajo existente. - Análisis Estratégico de Entropía: La utilidad de los datos de tiempo recolectados trasciende la mera cuantificación del esfuerzo. El proyecto destaca la capacidad de esta información para "inferir entropía en su proceso/código". Esto sugiere un potencial para identificar cuellos de botella, ineficiencias o complejidad creciente en el desarrollo, facilitando la identificación de áreas para la mejora y la optimización de los ciclos de vida del software.
- Opciones de Instalación Flexibles y Directas: La herramienta ofrece dos métodos de instalación sencillos. Los
Contenido
git-time-hooks
A pair of git hooks to automatically track time spent in feature development.
My blog post is here, which describes the motivation and how it works.
TL;DR
These hooks automatically add time tracking commit messages when you merge a feature branch. You can use this time data to infer entropy in your process/code.
$ git log -1
commit 75c017e90eb491f9a6901aea41aed4f9317ff4ee (HEAD -> main)
Merge: 412cab8 2a97c3a
Author: Doug Bridgens
Date: Fri Apr 4 10:36:37 2025 +0100
Merge branch 'feat_githooks'
Time spent on feat_githooks: 0d:0h:3m secs=194
Install
You can simply copy the two hooks into ./git/hooks/ and make them executable.
Or use a Makefile to automate the process.
$ cat Makefile
HOOKS= \
https://raw.githubusercontent.com/thisdougb/git-time-hooks/main/commit-msg \
https://raw.githubusercontent.com/thisdougb/git-time-hooks/main/prepare-commit-msg
githooks:
@cd .git/hooks && \
for i in $(HOOKS); do \
echo "installing git hook $$i"; \
curl -sO $$i; \
chmod +x "`echo $$i | rev | cut -f1 -d'/' | rev`"; \
done
$ make githooks
installing git hook https://raw.githubusercontent.com/thisdougb/git-time-hooks/main/commit-msg
installing git hook https://raw.githubusercontent.com/thisdougb/git-time-hooks/main/prepare-commit-msg
Changelog
04 Apr 2025
Refactored to make the hooks add time data into the merge commit messages. This is cleaner and a little bit simpler.
28 Mar 2025
Initial git hooks, creating tags to store the time data.
Fuente: GitHub