在Mercurial 2.4
中添加了一个模板关键字{p2rev}
,可用于确定变更集是否为合并。
hg log -r42 --template {p2rev}
如果返回“-1”,则没有第二个父项,因此变更集不合并,否则 合并。
但是大多数开发人员仍然使用Mercurial 2.1.1
。在他们的机器上使用{p2rev}
始终返回[空白]。
我在2.1.1中尝试过:
hg log -r42 --template {parents}
这会产生一些奇怪的输出:
确定变更集是否是Mercurial pre-2.4 中的合并的最佳方法是什么,比如2.1.1
?
答案 0 :(得分:1)
hg parents
命令可能会执行您想要的操作:
hg parents -r 42 --template "{node|short}\n"
对于合并变更集,您将获得2行输出,而对于非合并变更集,您将获得1行。
答案 1 :(得分:0)
我正在使用Mercurial 2.2.2(Ubuntu 12.10),它似乎正在运行(使用 Revision Sets 查询语言):
$ hg log -r 'merge()'
changeset: 6:f75b34694a73
parent: 4:129b7b24f6b4
parent: 5:85771af34f42
[...]
summary: Merge branch 'default' of /foo/proto
changeset: 12:04975792d1f3
parent: 10:42c64107845f
parent: 11:226623b54bd2
[...]
summary: merged branch 'experimental-bar' into 'default'
答案 2 :(得分:0)
如果
hg log -r"42 & merge()" --template x
返回非空字符串,然后更改集42是合并 如果有结果,模板将返回字母x。