我有一个带有一个头的存储库的克隆,既漂亮又简单。在引入其他人的更改后,我有一个脚本来计算人头以查看是否需要合并。但是如果对方做了一个分支并合并它,“hg head”显示两个头,脚本认为它必须合并。真正的测试应该是什么?
前:
0 - 1
后:
0 - 1 - 2 - 3
\ /
4 (branch)
这不需要合并。但简单比较前后正面的数量会表明它确实如此。为什么在这种情况下,Mercurial 甚至会显示不止一个头像?
而不是调用hg heads
只hg heads --topo
显示拓扑头的呼叫 - 那些没有孩子的人。您会看到他们合并分支的头部,但由于它已合并,因此它不是拓扑头部并且--topo
会抑制它。
如果您的分支名称中没有空格,则可以使用此脚本:
#!/bin/sh
for b in $(hg branches -q); do
h=$(hg heads --template "." $b)
if test ${#h} -gt 1; then
echo "Branch $b needs merging, it has ${#h} heads"
fi
done
它遍历每个打开的分支并计算其上的正面数。
您可以在拉取之前克隆您的存储库,然后使用--new-branch
. 如果这抱怨新的头,你需要合并。