Mercurial 分支关系概述

Overview of branch relationships in mercurial

我有一个历史悠久的 repo 和各种长运行 命名的分支,有些已经关闭,有些仍然开放。我想知道哪些分支依赖于哪些分支,这样我就可以判断分支 A 是否实际上是一根树枝,或者其他分支是否依赖于它。有没有办法查看分支之间关系的高级概览或简化图表?

                       y-y-y-y-y
                      /
...o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-
      \         /           
       x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x

例如,在上面我不能删除整个 x 分支,因为默认的 o 依赖于它的一部分。但是在 hg log --graph 的输出中向下滚动数百个条目,我可能没有注意到合并。

基本上我正在寻找拆分和合并的记录,就好像同一分支中的长提交序列被折叠成一个提交一样。 (当然,了解 哪些 范围被折叠是很有用的。)或者,一个非常紧凑的图形表示可能以其他方式使概览成为可能,或者可能有一个非视觉的(文本)方式总结依赖关系。

                  y--y
                 /
...o--o ---- o--o--o
       \    /
        x--x 

我同时使用命令行 hgtortoise HG,所以我对基于其中任何一个的解决方案都很满意。有什么想法吗?

在 TortoiseHg 中,您可以启用过滤器并使用:

head() or merge() or parents(merge())

这应该只显示头部、合并和合并的父项,以便您可以看到所有内容是如何相互关联的。

另一个有用的是 not follow()。如果更新到上面 o 的提示,它会显示 xy 的存根未合并到 o.