¿Subversion falla en el enganche post-commit?

Estoy tratando de hacer que Subversion deployment automáticamente la copy de trabajo actual al confirmar.

por ejemplo, si alguien revisa el repository 'public_html' y luego realiza un cambio, necesito que SVN ejecute automáticamente 'svn update / path / to / public_html /' en el server que ejecuta svn.

He configurado un enganche post-commit que llama:

/ usr / bin / svn update / path / to / public_html /

Me he asegurado de que el enganche post-commit sea ejecutable, y si ejecuto el script manualmente a través de SSH, se ejecuta correctamente y actualiza el / path / to / public_html / dir, por lo que sabemos que el script post-commit funciona bien.

El problema que estoy encontrando es que cada vez que me comprometo, obtengo este error:

Transmitting file data .svn: Commit failed (details follow): svn: MERGE of '/svn/public_html': 200 OK (http://ourdomain.com) 

La cosa es que SVN está mintiendo: la confirmación NO falla realmente: si actualizo manualmente el directory (o ejecuto manualmente el script post-commit), la actualización se completa y los cambios se reflejan en el server.

Entonces, ¿alguien sabe por qué mi gancho post-commit está fallando?

He visto un montón de publicaciones sobre este tema, pero ninguna parece tener ninguna solución aparte de "intente ejecutar el script de post-commit manualmente", que he probado y funciona bien … Entonces, el script post-commit no está disponible. El problema, parece ser un problema con SVN.

¡Cualquier ayuda sería muy apreciada!

Debe tener en count que en el script hook no existe ningún entorno … lo que significa que debe usar routes absolutas en sus scripts en lugar del command, porque tampoco tiene ninguna ruta. ¿Seguro que usará una confirmación posterior, porque la confirmación posterior no puede fallar? Solo una confirmación previa y la confirmación inicial pueden hacer tal cosa.

Compruebe si el ID de usuario del process del server svn tiene suficientes derechos en / ruta / a / public_html / para escribir files y directorys.

Otra idea: también necesita acceder a su propio repository, como se indica en la copy de trabajo "/ ruta / a / public_html /". Si usa svn + ssh o el protocolo http, puede querer cambiar esto a protocolo de file; está en el mismo server de todos modos.