0

如何找到所有未合并到default分支或任何其他分支的分支头?

1----2----4----6----8----13----14      Branch: default (E is a merge of F into D)
 \    \    \    \ /      /    
  \    \    \    7      /        Branch B1 (closed-merged)
   \    \    5-----9---+         Branch B2 (closed-merged)
    15   \    \                  Branch B5
          \    10          Branch B3
           3    \          Branch B4
            \    11        Branch B3
             12            Branch B4

在上面的例子中(改编自这个 SO answer),我试图构建一个搜索,它将返回 changeset 1112并且15分支的名称(Branch B3和)作为​​未合并到的Branch B4分支。Branch B5default

我还期望变更集12, 11, 9,714比较的结果Branch 5

4

2 回答 2

1

使用 revsets 你可以像这样完成它:

hg log -r 'not ancestors(14) and head()'

这应该会给你变更集 11、12 和 15。如果你用 15 替换了 14,你应该得到你期望的集合。要排除封闭分支(示例中为 7 和 9),您可以添加and not closed()到 revset 定义中:

hg log -r 'not ancestors(14) and head() and not closed()'

hg 的帮助页面上查看更多关于revsets的信息。

于 2013-06-26T16:38:55.667 回答
0

您所要求的 95% 仅提供:

hg heads

我唯一能看到的错误是它确实包括行李箱尖端,在您的示例中为 14。

于 2013-06-28T12:49:28.347 回答