Proteger los tags en Subversion

LogoSubversion

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.

1 comentario

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

Deja un comentario