el enlace post-commit produce un error en svn commit pero funciona cuando se ejecuta manualmente en la línea de comandos
Actualmente estoy tratando de configurar el enlace post-commit para mi repositorio de subversion para enviar notificaciones por correo electrónico. Estoy usando Subversion 1.7.8. Mi script de enlace post-commit es el siguiente:
#!/bin/sh
REPOS="$1"
REV="$2"
"$REPOS"/hooks/mailer.py commit $REPOS $REV "$REPOS"/mailer.conf
Cuando hago un commit se produce el siguiente mensaje de error:
Traceback (most recent call last):
File "/lib/python2.7/site.py", line 563, in <module>
main()
File "/lib/python2.7/site.py", line 545, in main
known_paths = addusersitepackages(known_paths)
File "/lib/python2.7/site.py", line 278, in addusersitepackages
user_site = getusersitepackages()
File "/lib/python2.7/site.py", line 253, in getusersitepackages
user_base = getuserbase() # this will also set USER_BASE
File "/lib/python2.7/site.py", line 243, in getuserbase
USER_BASE = get_config_var('userbase')
File "/lib/python2.7/sysconfig.py", line 521, in get_config_var
return get_config_vars().get(name)
File "/lib/python2.7/sysconfig.py", line 420, in get_config_vars
_init_posix(_CONFIG_VARS)
File "/lib/python2.7/sysconfig.py", line 299, in _init_posix
raise IOError(msg)
IOError: invalid Python installation: unable to open //include/python2.7/pyconfig-32.h (No such file or directory)
Lo curioso de este error es que cuando ejecuto post-commit en la línea de comandos (con los argumentos apropiados) no se producen errores y recibo la notificación de correo electrónico deseada. Esto me hace pensar que el error no está relacionado con mi archivo mailer.conf.
¿Alguien tiene alguna idea de lo que podría estar causando este error?
Gracias, Jamie.
CORRECCIÓN:
Pensé que ejecutar svnserve under root solucionó el problema localmente, pero después de una experimentación adicional me doy cuenta de que esto está mal. post-commit funciona en la máquina local si el proyecto se desprotegió utilizando la sintaxis file: // pero falla si se desprotege utilizando la sintaxis svn: //.
Por lo tanto, el problema solo surge cuando svnserve intenta ejecutar post-commit, sin importar si se está ejecutando bajo la raíz o no, o si el cliente está en la misma máquina o en otra.