Gancho post-commit de Subversion para actualizar la versión 'staging' no funciona

Tenemos una versión de testing de nuestra aplicación web (es básicamente una copy de trabajo de subversión en la que nadie trabaja) que vive en '/ apps / software'. Cada desarrollador tiene su propia copy de trabajo en '~ / apps / software'. Me gustaría utilizar un simple script de anotación post-commit para actualizar la copy de ensayo cada vez que un desarrollador confirma un cambio en el repository.

Suena simple ¿verdad? Bueno, he estado golpeando mi cabeza contra una panetworking de ladrillos en esto por más time de lo que debería. El script hook (llamado 'post-commit', ubicado en / svn / software / hooks, permissions = 777, usuario: grupo = apache: dev) es el siguiente (ignore los bits comentados por el momento):

#!/bin/sh /usr/bin/svn update /apps/software >> /var/log/svn/software.log # REPOS="$1" # REV="$2" # AUTHOR=`/usr/bin/svnlook author -r "$REV" "$REPOS"` # LOG=`/usr/bin/svnlook log -r "$REV" "$REPOS"` # EMAIL="test@example.com" # echo "Commit log message as follows:- # # \"${LOG}\" # # The staging version has automatically been updated. # # See http://trac/projects/software/changeset/${REV} for more details." | /bin/mail -s "SVN : software : revision ${REV} committed by ${AUTHOR}" ${EMAIL} 

Eso es. El file de logging tiene los mismos permissions y usuario: grupo que el script de post-commit e incluso le he dado a la copy de ensayo el mismo usuario: grupo y permissions. Apache en sí (estamos usando la extensión de subversión de apache) se está ejecutando bajo apache: dev también. Sé que el gancho se está ejecutando, porque las cosas que se comentaron anteriormente enviando un correo electrónico funcionan bien, solo es el command de actualización que no lo es.

También puedo ejecutar el script de enlace post-commit sin variables de entorno usando:

 $ env - /svn/software/hooks/post-commit /svn/software <changeset> 

y funciona bien, realizando la 'actualización svn' sin problemas. Incluso he intentado eliminar el '>>' para registrar el file, pero no hace la diferencia.

Cualquier ayuda en esto sería muy apreciada …

Su único envío de salida estándar al logging aquí, no salida de error:

 /usr/bin/svn update /apps/software >> /var/log/svn/software.log 

Haga esto en su lugar para ver qué está pasando mal:

 /usr/bin/svn update /apps/software >> /var/log/svn/software.log 2>&1