prepush precommit husky hooks python svn unix pre-commit

python - precommit - pre-commit npm



Configurar svnperms pre-commit hook (1)

Supongo que la ubicación del binario de python no está en $PATH para el servidor svn. La línea de svnperms.py de svnperms.py dice:

#!/usr/bin/env python

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

Estoy tratando de implementar svnperms en un repositorio, pero estoy teniendo dificultades con algunas cosas:

pre-commit tiene los permisos de ejecución:

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

Esta es mi llamada a svnperms dentro de precompromiso:

# 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 - no tiene terminaciones de línea ^ M.

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

Llamar a svnperms sin parámetros 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 Python, pero no estaba seguro de si todas las dependencias están ahí. Si ese es el problema, no estoy seguro de cómo determinarlo, ya que Python parece estar funcionando según el resultado anterior.

¿Qué me estoy perdiendo?