我有几个已经从SVN转换而来的存储库我们希望确保当人们推送到存储库时他们无法创建额外的头。如果有多个头部,TipsAndTricks wiki page中有几个钩子会阻止推动,但是如何构建一个阻止推动新头部的钩子?
这样做的正确方法似乎是比较修订版0的头数:父版,然后比较0:提示,但我似乎找不到办法做到这一点。 hg heads -r $HG_NODE
仅显示用户第一次提交后的头数。
答案 0 :(得分:5)
默认情况下,hg push
会阻止推送额外的头,需要-f
标志。您可以编写一个Mercurial扩展来使其忽略该标志,从而有效地禁用推送新头。
那就是说,我会质疑机械地禁止新头的智慧。相反,我会训练你的团队在推动之前正确合并,同时仍允许他们在罕见的情况下进行合理,特别是因为Mercurial已经警告过你。
答案 1 :(得分:3)
Mercurial wiki - Tips and Tricks - Prevent a push that would create multiple heads
指向几个现有的钩子,这些钩子可能对复制和改编很有用。
答案 2 :(得分:1)
检查此链接。它自动化允许多个头的过程
答案 3 :(得分:1)
这是最好的:https://www.mercurial-scm.org/wiki/TipsAndTricks#Prevent_a_push_that_would_create_multiple_heads
答案 4 :(得分:0)
使用hg ci -m 'Closed branch feature-x' --close-branch
关闭除一个头以外的所有头部,然后应用普通的单头钩。