Git Evolution
Visualiza cómo evolucionó tu código por lenguaje a lo largo del tiempo: un comando, un HTML interactivo listo para compartir.
Demo real: reporte generado ejecutando uv run main.py dentro de este propio portafolio.Abrir pantalla completa →
Características Principales
Pipeline Chain of Responsibility
Cinco pasos encadenados (Fetch → Parse → Accumulate → Plot → Render) que enriquecen un contexto compartido, fáciles de extender con nuevos handlers.
Zero-Config con uv (PEP 723)
Metadatos inline en el script permiten que uv resuelva Python y plotly al vuelo con `uv run main.py`, sin venvs ni instalación global.
Rendimiento sin Regex
El parseo de `git log --numstat` usa escaneo estricto de strings línea a línea para minimizar el costo de CPU en historiales largos.
Binario Standalone
`build.sh` orquesta PyInstaller en modo onefile con uv: un ejecutable autosuficiente que incrusta el template HTML y no requiere Python.
¿Cómo funciona?
- 1.Fetch: ejecuta `git log --numstat`, `git rev-parse` y `git rev-list` para capturar historial, nombre del repo y total de commits.
- 2.Parse: escanea el log línea a línea acumulando líneas añadidas/eliminadas por extensión y fecha.
- 3.Accumulate: convierte los deltas diarios en series acumulativas por extensión.
- 4.Plot: construye la figura Plotly oscura con rango de fechas explícito, evitando que el autorange colapse en repos pequeños.
- 5.Render: inyecta figura y metadatos en template.html produciendo git-evolution.html autónomo.
Explora el Código
Revisa la arquitectura completa del pipeline en el repositorio oficial.
Ver en GitHub