Git hook pre-push - 强制Gerrit推

时间:2016-01-08 22:12:58

标签: git hook gerrit

我们的团队共同开发,我们最近将TeamCity配置为在推送到远程仓库时运行回归测试。理想情况下,我们的开发人员现在将使用Gerrit推送,以便可以通过TeamCity进行推送。我预计并非所有的开发人员都会通过Gerrit推动,并且还会决定继续做一个" git push"并绕过验证门。

我看了一下git pre-push hook ...我看到我可以阻止推送,但是我可以发送一个运行Gerrit推送的新命令吗?

由于

1 个答案:

答案 0 :(得分:0)

答案here表明你应该使用预提交钩子,以便甚至不提交失败的测试。

您可以将this添加到预提交文件中:

#!/bin/bash
printf "Temporarily committing results... \n"
git commit "$@"
printf "Testing using Gerrit... \n"
### ({Command to test using Gerrit goes here} && printf "Success! Commit saved! \n") || 
   (printf "Tests failed, undoing commit \n" && git reset HEAD^)

或者,您应该只需将命令附加到.git/pre-commit的末尾即可运行Gerrit。

请注意,挂钩并不能阻止所有灾难;使用选项git commit运行--no-verify的人可以进行提交转义测试!