atrapando un error de git post-receive en un script

En un script bash hago un

git push 

y verifico su estado de salida.

En el server remoto hay un gancho post-recepción que hace algunas cosas. Si ocurre un error, el gancho post-recepción saldrá con un valor distinto de cero.

Sin embargo, cuando el gancho post-recepción se equivoca, git push sale normalmente. A less que esté específicamente comprobando el resultado de cadenas de error específicas (que no soy) mi guión cree que todo salió bien.

¿Hay alguna manera fácil para mí para determinar si el gancho post-recepción falló?

Entonces la respuesta es no, no hay forma de verificar fácilmente si el gancho post-recepción falló. Lo mejor que puedes hacer es que tu script verifique la salida desde el control remoto y asegúrate de que tu gancho posterior a la recepción muestre un post de error que estás buscando.

En mi caso, un gancho de pre-recepción no funcionará, ya que estoy presionando para otro repository de copy de security y el nuevo compromiso debe ser aceptado antes de que pueda ser presionado.

Básicamente, el enlace posterior a la recepción debería hacer algo como:

  some-command-that-might-fail RC=$? if [ $RC -eq 0 ]; then echo -e "\nERROR: some-command-that-might-fail FAILED!!!!!!!! PANIC!!!!!!\n" fi 

Luego, la secuencia de commands que realiza el empuje debe grep la salida para FAILED o ERROR o PANIC e informar el error posterior a la recepción.

Citando de http://www.kernel.org/pub/software/scm/git/docs/githooks.html#post-receive :

post-recepción

Este enlace no afecta el resultado de git-receive-pack, como se llama después de que se realiza el trabajo real.

Tal vez el gancho de pre-recepción sea ​​más adecuado para su propósito, aunque no se menciona un código de retorno transmitido.