Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何创建一个mercurial钩子来防止新的头部?_Mercurial_Mercurial Hook - Fatal编程技术网

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

我如何创建一个mercurial钩子来防止新的头部?,mercurial,mercurial-hook,Mercurial,Mercurial Hook,我有几个从SVN转换而来的存储库,我们希望确保当人们推到存储库时,他们不能创建额外的头部。如果有多个头部,有几个钩子可以防止推动,但是如何构建一个钩子来防止推动新的头部呢 这样做的正确方法似乎是比较修订版0:parent中的头数,然后比较0:tip,但我似乎找不到这样做的方法hg-heads-r$hg_节点仅显示推送用户第一次提交后的头数。默认情况下,hg-push阻止推送其他头,需要使用-f标志。您可以编写一个Mercurial扩展,使其忽略该标志,从而有效地禁用新头部的推送 也就是说,我会质

我有几个从SVN转换而来的存储库,我们希望确保当人们推到存储库时,他们不能创建额外的头部。如果有多个头部,有几个钩子可以防止推动,但是如何构建一个钩子来防止推动新的头部呢


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

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


也就是说,我会质疑机械地拒绝新领导人的做法是否明智。相反,我会训练您的团队在推送之前正确合并,同时允许他们在罕见的情况下这样做,特别是因为Mercurial已经警告过您。

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


指向可能有助于复制和调整的几个现有挂钩。

使用hg ci-m“闭合分支特征-x”-闭合分支关闭除一个头部外的所有头部,然后应用普通单头部挂钩。

这是最好的:


我个人使用:

我看到在多个地方防止多个HAEAD被视为一个公共挂钩。它在wiki的提示和技巧中,被mozilla和netbeans使用。这似乎证明了这不是一个坏主意。如果我要开始一个新项目,我会使用其中的一个。但他们没有按我需要的方式处理我的转换回购。在推动之前培训人们合并并不能解决问题。其他人可能总是在你的合并和推送之间推送一些新的内容。@Kylotan:然后你会得到警告,说你正在推送一个新的头,hg会建议你在推送之前先拉合并。您仍然必须使用
-f
标志。我发现
cheackheads.py
有一些限制,请参阅