Introducción
En el desarrollo colaborativo de software, es esencial comprender la contribución de cada miembro del equipo. Este tutorial presenta un script de Bash que calcula el porcentaje de contribución de cada autor en un repositorio Git. Vamos a ver cómo utilizar esta herramienta para obtener información valiosa sobre el trabajo realizado por cada persona en un proyecto.
Requisitos Previos
Antes de comenzar, asegúrate de tener los siguientes requisitos en tu sistema:
- Git instalado: Puedes descargarlo desde git-scm.com.
- Acceso al repositorio Git que deseas analizar.
Paso 1: Crear el Script
Crea un nuevo fichero llamado contribucion.sh con este contenido:
#!/bin/bash REPO_PATH=$(pwd) DESDE_FECHA="2022-01-01" HASTA_FECHA=$(date +"%Y-%m-%d") # Obtener la lista de autores y la cantidad de líneas agregadas y eliminadas para cada uno AUTHORS=$(git log --format='%aN' --since="$DESDE_FECHA" --until="$HASTA_FECHA" | sort -u) echo "Estadísticas detalladas de contribución desde $DESDE_FECHA hasta $HASTA_FECHA en el repositorio $REPO_PATH:" # Array para almacenar resumen SUMMARY=() # Calcular y mostrar el porcentaje para cada autor basado en líneas agregadas y eliminadas for AUTHOR in $AUTHORS; do AUTHOR_LINES=$(git log --author="$AUTHOR" --since="$DESDE_FECHA" --until="$HASTA_FECHA" --pretty=tformat: --numstat | awk '{if ($1 != "" && $1 != "-") sum += $1; if ($2 != "" && $2 != "-") sum += $2} END {if (sum != "") print sum; else print 0}') TOTAL_LINES=$(git log --since="$DESDE_FECHA" --until="$HASTA_FECHA" --pretty=tformat: --numstat | awk '{if ($1 != "" && $1 != "-") sum += $1; if ($2 != "" && $2 != "-") sum += $2} END {if (sum != "") print sum; else print 0}') # Salida detallada echo "Detalles para $AUTHOR:" echo " Líneas de $AUTHOR: $AUTHOR_LINES" echo " Total de líneas: $TOTAL_LINES" # Verificar que el total de líneas no sea cero antes de realizar el cálculo if [[ "$TOTAL_LINES" -gt 0 ]]; then # Utilizar printf para formatear la salida con tres decimales PERCENTAGE=$(printf "%.3f" "$(echo "scale=4; ($AUTHOR_LINES / $TOTAL_LINES) * 100" | bc)") echo " Porcentaje de contribución: $PERCENTAGE%" # Agregar al resumen SUMMARY+=("$AUTHOR: $PERCENTAGE%") else echo " No hay contribuciones en el rango de fechas especificado." # Agregar al resumen con un porcentaje de 0% SUMMARY+=("$AUTHOR: 0%") fi echo "-------------------------" done # Resumen general echo "Resumen general:" for LINE in "${SUMMARY[@]}"; do echo "$LINE" done
Paso 2: Configurar Permisos
Asegúrate de que el script tenga permisos de ejecución. Si el script se llama contribucion.sh
, puedes establecer los permisos con el siguiente comando:
chmod +x contribucion.sh
Paso 3: Ejecutar el Script
Ejecuta el script desde la terminal. El script solicitará información sobre la fecha de inicio y calculará el porcentaje de contribución de cada autor en el rango de fechas especificado.
Recuerda que debes ejecutarlo en la carpeta dónde tengas tu proyecto git (con la carpeta .git)
./contribucion.sh
Paso 4: Personalización
Si deseas personalizar el rango de fechas u otras configuraciones, puedes editar las variables en el script, como DESDE_FECHA
y HASTA_FECHA
.
Conclusión
¡Ahora puedes tener una visión clara de la contribución de cada autor en tu repositorio Git! Este script es una herramienta útil para los equipos que desean comprender mejor cómo están contribuyendo individualmente al proyecto.
Ingeniero en Informática, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.