我有几个从 SVN 转换而来的存储库,我们希望确保当人们推送到存储库时,他们不能创建额外的头。TipsAndTricks wiki页面中有几个钩子 可以防止在有多个头时推动,但是我如何构建一个防止推动新头的钩子?
看起来这样做的正确方法是比较修订版 0:parent 中的磁头数,然后比较 0:tip,但我似乎找不到这样做的方法。hg heads -r $HG_NODE
仅向我显示用户第一次提交被推送后的人头数。
我有几个从 SVN 转换而来的存储库,我们希望确保当人们推送到存储库时,他们不能创建额外的头。TipsAndTricks wiki页面中有几个钩子 可以防止在有多个头时推动,但是我如何构建一个防止推动新头的钩子?
看起来这样做的正确方法是比较修订版 0:parent 中的磁头数,然后比较 0:tip,但我似乎找不到这样做的方法。hg heads -r $HG_NODE
仅向我显示用户第一次提交被推送后的人头数。
默认情况下,hg push
防止推动额外的头,需要-f
标志。您可以编写一个 Mercurial 扩展来使其忽略该标志,从而有效地禁用新头的推送。
也就是说,我会质疑机械地禁止新头的智慧。相反,我会训练你的团队在推进之前正确合并,同时仍然允许他们在极少数情况下这样做,特别是因为 Mercurial 已经警告过你。
Mercurial wiki - 提示和技巧 - 防止会产生多个头的推送
指向几个现有的钩子,这些钩子可能对复制和适应有用。
检查此链接。它使允许多个磁头的过程自动化
这是最好的:https ://www.mercurial-scm.org/wiki/TipsAndTricks#Prevent_a_push_that_would_create_multiple_heads
我个人使用:http ://hg.python.org/hooks/file/default/checkheads.py
用于hg ci -m 'Closed branch feature-x' --close-branch
关闭除一个头以外的所有头,然后使用普通的单头钩。