0

在 Mercurial中,添加2.4了一个模板关键字{p2rev},可用于确定变更集是否为合并。

hg log -r42 --template {p2rev}

如果返回“-1”,则没有第二个父项,因此变更集不是合并,否则合并。

但是这里的大多数开发人员仍然在 Mercurial 上2.1.1。在他们的机器上使用{p2rev}总是返回 [空白]。

我在 2.1.1 中尝试过:

hg log -r42 --template {parents}

这给出了一些奇怪的输出:

  • 如果只有 1 个父级(不是合并):没有输出
  • 如果有 2 个父母(合并):父母双方的 {rev}:{ node }

例如,确定变更集是否是 Mercurial pre-2.4中的合并的最佳方法是什么2.1.1

4

3 回答 3

1

hg parents命令可能会执行您想要的操作:

hg parents -r 42 --template "{node|short}\n"

对于合并变更集,您将获得 2 行输出,对于非合并变更集,您将获得 1 行。

于 2013-04-19T13:37:42.467 回答
0

如果

hg log -r"42 & merge()" --template x

返回一个非空字符串,然后变更集 42 是一个合并。
如果有结果,模板将返回字母 x。

于 2013-04-19T13:12:39.813 回答
0

我正在使用 Mercurial 2.2.2 (Ubuntu 12.10),这似乎可行(使用修订集查询语言):

$ 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'
于 2013-04-19T09:18:08.560 回答