Absortio

Email → Summary → Bookmark → Email

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-hooks introduce 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 como Time 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-msg y prepare-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