Evitar comentarios vacíos en los commits de SVN

De más está decir que la intención de los comentarios en un commit es para que, si hay que trazar una modificación, exista una aclaración o especificación coloquial de lo que se estuvo haciendo.

A veces, ya sea por vagos o distraídos, puede ser que se nos pase por alto ingresar el comentario al commit que estamos realizando.

Si bien podríamos considerar esto como una mala práctica (el no ingresar los comentarios), en pequeños desarrollos, en los cuales trabajemos solos (o casi), esto no traería mayores consecuencias.

Muy distinto es el efecto si llevamos ésta cuestión a proyectos grandes (tanto en código como en personas).

Para evitar que se filtren los comentarios vacíos, podemos ajustar nuestro repositorio para que valide dicha condición y nos impida ingresar el commit.

Para empezar, vamos al directorio

cd /path/a/mi/repositorio/hooks

Dentro del directorio vamos a ver los varios archivos .tmpl que tiene nuestro repositorio por defecto. A nosotros nos va a interesar trabajar con pre-commit. Veamos paso a paso como habilitarlo y aplicar nuestra regla para evitar comentarios vacíos.

Copiamos pre-commit.tmpl y le damos permiso de ejecución a nuestra copia.

cp pre-commit.tmpl pre-commit
chmod +x pre-commit

El siguiente paso será editar el contenido del archivo.

vi pre-commit

Lo que vamos a agregar será lo siguiente:

#!/bin/sh
 
REPOS="$1"
TXN="$2"
 
SVNLOOK=/usr/bin/svnlook
LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep [a-zA-Z0-9] | wc -c)
 
if [ "$LOGMSG" -lt 5 ]; then
echo "EL COMENTARIO DEL COMMIT NO PUEDE ESTAR VACIO." 1>&2
exit 1
fi
exit 0

De ésta forma, antes de introducirse el commit, se hará una validación del comentario. En el ejemplo, no sólo no puede estar vacío, sino que debe contener al menos 5 caracteres.

En caso de no cumplirse ésta condición, el commit será detenido y se le devuelve al cliente un mensaje de error con el texto “El comentario del commit no puede estar vacío.” (Por supuesto, usarán como mensaje aquello que les quede más cómodo).

Y eso es todo, un detalle menos del cual preocuparse si les toca gestionar un proyecto.