Pregunta

Estoy tratando de poner en práctica svnperms en un repositorio, pero estoy teniendo dificultad con algunas cosas:

pre-commit tiene los permisos ejecutar:

-rwxrwxr-x   1 svnadm     svn           3018 May 27 10:11 pre-commit

Este es mi llamado a svnperms plazo de pre-commit:

# Check that the author of this commit has the rights to perform
# the commit on the files and directories being modified.
SVNPERMS=/usr/local/svn/scripts/svnperms.py
$SVNPERMS -r $REPOS -t $TXN || exit 1

Tengo svnperms.py instalado en la ubicación especificada:

# ls -l /usr/local/svn/scripts
total 24
-rwxrwxr-x   1 svnadm     svn          11840 May 25 07:48 svnperms.py

svnperms.py está en formato UNIX -. ^ M sin fines de línea

TortoiseSVN regresa con:

Command: Commit  
Modified: C:\projects\Sandbox\Trunk\Test.txt  
Sending content: C:\projects\Sandbox\Trunk\Test.txt  
Error: Commit failed (details follow):  
Error: 'pre-commit' hook failed with error output:  
Error: No such file or directory: python  

Llamando svnperms sin parametros muestra:

/usr/local/svn/scripts/svnperms.py
missing required option(s): repository, either transaction or a revision
Usage: svnperms.py OPTIONS

Options:
    -r PATH    Use repository at PATH to check transactions
    -t TXN     Query transaction TXN for commit information
    -f PATH    Use PATH as configuration file (default is repository
               path + /conf/svnperms.conf)
    -s NAME    Use section NAME as permission section (default is
               repository name, extracted from repository path)
    -R REV     Query revision REV for commit information (for tests)
    -A AUTHOR  Check commit as if AUTHOR had commited it (for tests)
    -h         Show this message

El administrador de UNIX ha instalado recientemente pitón, pero no estaba seguro si todas las dependencias están ahí. Si ese es el problema, no estoy seguro de cómo determinar que, desde pitón parece estar funcionando en base a la salida anterior.

¿Qué me falta?

¿Fue útil?

Solución

Mi conjetura es que la ubicación del binario python no está en $PATH para el servidor SVN. La línea de shabang svnperms.py lee:

#!/usr/bin/env python

Pero eso supone que el ejecutable se encuentra en la $PATH de la persona que llama. Si no tiene permisos para modificar el entorno de ejecución del servidor de la subversión, intente reemplazar python en la línea shabang con la ruta dada por which python cuando se ejecuta de forma interactiva.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top