El enlace posterior a la confirmación de Subversion para actualizar la versión "provisional" no funciona

StackOverflow https://stackoverflow.com/questions/1409791

Pregunta

Tenemos una versión de prueba de nuestra aplicación web (es básicamente una copia de trabajo de subversión en la que nadie trabaja) que se encuentra en '/ apps / software'. Cada desarrollador tiene su propia copia de trabajo en '~ / apps / software'. Me gustaría utilizar un sencillo script de enlace posterior a la confirmación para actualizar la copia provisional cada vez que un desarrollador confíe un cambio en el repositorio.

Suena simple ¿verdad? Bueno, he estado golpeando mi cabeza contra una pared de ladrillo en esto por más tiempo del que debería. El script de enlace (llamado 'post-commit', ubicado en / svn / software / hooks, permisos = 777, usuario: grupo = apache: dev) es el siguiente (ignore los bits comentados por ahora):

#!/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 todo. El archivo de registro tiene los mismos permisos y usuario: grupo que el script post-commit e incluso le he dado a la copia de prueba el mismo usuario: grupo y permisos. Apache en sí (estamos usando la extensión de subversión de apache) también se ejecuta bajo apache: dev. Sé que el gancho se está ejecutando, porque las cosas que se comentaron anteriormente al enviar un correo electrónico funcionan bien, es solo el comando de actualización que no lo está.

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 se ejecuta bien, realizando la 'actualización svn' sin problemas. Incluso he intentado eliminar el '> >' para registrar el archivo, pero no hace una diferencia.

Cualquier ayuda en esto sería muy apreciada ...

¿Fue útil?

Solución

Su único envío de salida estándar al registro 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á mal:

/usr/bin/svn update /apps/software >> /var/log/svn/software.log 2>&1
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top