如何创建一个防止新头的mercurial钩子?

时间:2010-12-03 22:12:08

标签: mercurial mercurial-hook

我有几个已经从SVN转换而来的存储库我们希望确保当人们推送到存储库时他们无法创建额外的头。如果有多个头部,TipsAndTricks wiki page中有几个钩子会阻止推动,但是如何构建一个阻止推动头部的钩子?

这样做的正确方法似乎是比较修订版0的头数:父版,然后比较0:提示,但我似乎找不到办法做到这一点。 hg heads -r $HG_NODE仅显示用户第一次提交后的头数。

5 个答案:

答案 0 :(得分:5)

默认情况下,hg push会阻止推送额外的头,需要-f标志。您可以编写一个Mercurial扩展来使其忽略该标志,从而有效地禁用推送新头。

那就是说,我会质疑机械地禁止新头的智慧。相反,我会训练你的团队在推动之前正确合并,同时仍允许他们在罕见的情况下进行合理,特别是因为Mercurial已经警告过你。

答案 1 :(得分:3)

Mercurial wiki - Tips and Tricks - Prevent a push that would create multiple heads

指向几个现有的钩子,这些钩子可能对复制和改编很有用。

答案 2 :(得分:1)

检查此链接。它自动化允许多个头的过程

Mercurial Hook: forbid multiple heads

答案 3 :(得分:1)

答案 4 :(得分:0)

使用hg ci -m 'Closed branch feature-x' --close-branch关闭除一个头以外的所有头部,然后应用普通的单头钩。