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_Branch_Head - Fatal编程技术网

引入Mercurial后,如何判断是否需要合并?

引入Mercurial后,如何判断是否需要合并?,mercurial,branch,head,Mercurial,Branch,Head,我有一个只有一个头的存储库克隆,很好,很简单。在引入其他人的更改后,我有一个脚本,可以计算头数,以查看是否需要合并。但是如果另一个人制作了一个分支并将其合并,“hg heads”显示两个head,脚本认为它必须合并。测试到底应该是什么 之前: 0 - 1 之后: 0 - 1 - 2 - 3 \ / 4 (branch) 这不需要合并。但是,简单地比较一下前后的人头数量,就会发现确实如此。在这种情况下,为什么Mercurial甚至会显示多个头部?您可以在拉取之前克隆您的回购

我有一个只有一个头的存储库克隆,很好,很简单。在引入其他人的更改后,我有一个脚本,可以计算头数,以查看是否需要合并。但是如果另一个人制作了一个分支并将其合并,“hg heads”显示两个head,脚本认为它必须合并。测试到底应该是什么

之前:

0 - 1
之后:

0 - 1 - 2 - 3
    \  /
     4 (branch)

这不需要合并。但是,简单地比较一下前后的人头数量,就会发现确实如此。在这种情况下,为什么Mercurial甚至会显示多个头部?

您可以在拉取之前克隆您的回购,然后使用
--新分支将其推入克隆。如果这导致出现新的头,则需要合并。

如果分支名称中没有空格,则可以使用以下脚本:

#/垃圾箱/垃圾箱
对于b,单位为美元(hg-q);做
h=$(hg头——模板“.”$b)
如果测试${h}-gt 1;然后
echo“分支$b需要合并,它有${h}个头”
fi
完成

它迭代每个打开的分支并计算其上的头数。

而不是调用
hg heads
调用
hg heads--topo
,它只显示拓扑头--没有孩子的头。您可以看到他们合并的分支的头,但由于它在中合并,因此它不是拓扑头,
--topo
将抑制它。

是否“hg heads default”仅显示默认分支上的头?如果stackoverflow允许标记两个答案,我也会接受这一个。在我的例子中,我只需测试默认的分支就可以了,这样代码就不再需要了。这也适用于比--topo更老的版本。这让我走上了正确的道路,我现在认为这是看
hg的头。
说。像OP一样,我总是在默认分支上。。。现在,但总有一天会改变的。这里的
与@Martin传递给--template开关的含义不同。不,理解“head”并不意味着“没有孩子”,而是意味着“在同一命名分支中没有孩子”是很重要的,尤其是在使用revset的情况下。