Proteger los tags en Subversion

Una vez que se crean tags en Subversion, es deseable que nadie modifique su contenido, como mucho borrarlos o cambiarle el nombre a la versión, pero no más allá.

Esto puede lograrse añadiendo un script en la carpeta de hooks de la instalación de Subversion.

Editamos el fichero hooks/pre-commit:

#!/bin/sh

REPOS="$1"
TXN="$2"

SVNLOOK=/usr/bin/svnlook

# Check for modification of tags.
# Reject tag modifications except creation and deletion
$SVNLOOK changed -t "$TXN" "$REPOS" | egrep "/tags/.+$" >/dev/null
if [ $? -eq 0 ] ; then
$SVNLOOK changed -t "$TXN" "$REPOS" | egrep "^[AD].*/tags/[^/]+/$" >/dev/null
if [ $? -ne 0 ] ; then
echo >&2 "Tags modification is not allowed."
exit 1
fi
fi

# All checks passed, so allow the commit.
exit 0

Finalmente lo hacemos ejecutable con chmod +x hooks/pre-commit y nos aseguramos que el propietario sea el usuario que ejecuta el servidor de Subversion con chown www-data:www-data hooks/pre-commit.

Una respuesta a “Proteger los tags en Subversion”

  1. Actualizado fallo en el script que impedía crear la propia carpeta tags.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.