¿Cómo puedo forzar a SVN post-commit a enviar posts al cliente?

Estoy escribiendo un enganche post-commit que publica ciertos files en un server web si se modifican.

Quiero dejar en claro al cliente / usuario qué sucede después de que se haya comprometido.

Es por eso que agregué commands echo devolviendo información al cliente.

Leí esta publicación: SVN post-commit hook devolviendo un post al cliente que dice que los enganches post commit solo pueden devolver información si utilizo la salida 1.

Esto funciona bien pero confunde a los clientes porque aparece este post:

Warning: post-commit hook failed (exit code 1) with output:

¿Hay alguna forma de sortear esta salida?

Si ayuda, mi script hasta el momento:

 echo "Everything OK. Checking if publishing dir was changed." >&2 svn status /var/www/dev/test/public/projektbereich1/http | grep [AMCDG] if [ $? -eq 0 ] ; then echo "Dir has changed. Publishing files." >&2 cp -R /var/www/dev/test/public/projektbereich1/http /var/www/public/ else echo "Dir has not changed. Webserver does not get updated." >&2 fi exit 1 

Estás saliendo explícitamente con un código de retorno de 1, que indica un error. Cambia la salida 1 a la salida 0 y deberías estar listo para continuar.

Alternativamente, establezca una variable para mantener el código de retorno en cada twig del else. 0 si tiene éxito, 1 si falla, luego salga $ myreturncode al final.

Entiendo que piensas que necesitas devolver 1, pero en mi gancho post-commit genero y envío el correo electrónico y luego devuelvo 0.

Solo necesita devolver 1 si desea que el marco svn envíe el error por usted. En el caso de éxito, debe manejar el "funcionó". post / correo electrónico usted mismo.

Si su problema es enmascarar el post de error svn , puede hacer:

 svn status /var/www/dev/test/public/projektbereich1/http 2>/dev/null | grep [AMCDG] 

gracias a Stephane busqué el significado de 2> / dev / null, 2> & 1 y así sucesivamente.

resulta que los progtwigs usan 3 tubos para transferir información:

  • 0: salida normal (STDOUT)
  • 1: input normal (STDIN)
  • 2: salida de error (STDERR)

así que solo necesitaba conectar mis echos a la salida del progtwig que es >&0

por ejemplo: echo "Everything OK. Checking if publishing dir was changed." >&0 "Everything OK. Checking if publishing dir was changed." >&0