禁止推送Git / Mercurial

时间:2010-01-21 20:48:12

标签: git mercurial

是否有任何分布式SCM插件禁止推送不符合特定条件的代码(例如最小测试覆盖率)?

4 个答案:

答案 0 :(得分:3)

https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks表示对于服务器端检查,您可以使用更新挂钩。

当然,您应该将挂钩放在中央主存储库中。

答案 1 :(得分:2)

您可以使用pre-commit / pre-changeset hook来执行此操作。

hgrc Man Page有一些信息。可能更好的是hg book section on hooks

答案 2 :(得分:2)

在mercurial中,您需要使用hooks。最有可能在服务器端使用控制挂钩pretxnchangegroup。这是一个钩子的一个很好的例子,可以阻止某人做一个创建多个头的推送:http://hg.netbeans.org/nb-hooks/file/tip/forbid_2head.py

答案 3 :(得分:1)

目前的答案都是针对Mercurial;使用git,还有钩子,你需要预接收或更新钩子。有关信息,请参见githooks手册页。

小心使用它们来检查测试覆盖范围之类的内容 - 您不希望用户在尝试推送时必须等待耗时的测试才能运行。