在bash脚本中我做
git push
我检查了其退出状态。
在远程服务器上有一个后接收钩,可以做一些事情。如果发生错误,后接种后的挂钩将以非零值退出。
但是,当后接种后的挂钩错误时,GIT推动正常退出。除非我专门检查输出是否有特定的错误字符串(我不是)我的脚本认为一切都可以。
我是否有一种简单的方法可以确定后接种后钩是否失败?
,因此答案是没有办法轻松检查后接种后的钩子是否失败。您能做的最好的方法是将脚本检查从远程检查输出,并确保您的后接收钩回波您要寻找的错误消息。
在我的情况下,预先接管的钩子无法使用,因为我正在推动另一个备份储备库,并且必须接受新的提交。
基本上,后接种后的钩子应该做以下操作:
some-command-that-might-fail
RC=$?
if [ $RC -eq 0 ]; then
echo -e "nERROR: some-command-that-might-fail FAILED!!!!!!!! PANIC!!!!!!n"
fi
然后,执行推送的脚本应抓住输出的失败或错误或恐慌,并报告后接收错误。
从http://www.kernel.org/pub/software/software/scm/git/docs/githooks.html#post-receive:
后接收者
...
此钩子不会影响Git-Receive-Pack的结果,正如完成实际工作后所说的那样。
也许没有提及传输的返回代码,但预知挂钩更适合您的目的。