tortoisehg日志窗口中的奇怪输出

时间:2008-11-20 14:04:00

标签: mercurial merge tortoisehg

我有两个分支,主分支(黑色)和功能分支(黄色)。

正如您所看到的,由于功能分支是分叉的,因此它保持最新从main获取更改:

alt text http://azkotoki.org/images/stackoverflow/tgh-reintegrate1.gif

当我将功能分支重新集成到主分支时,日志窗口会显示这个丑陋的图表:

alt text http://azkotoki.org/images/stackoverflow/tgh-reintegrate2.gif

它将每个合并点显示为与功能分支合并的新分支。如果我有几个功能分支,这将几乎不可能阅读。我也试过了hg view,结果甚至更奇怪。

无论上面显示的图片如何,最终的合并结果都很好,但重新整合的分支图表让我很烦。

我是否因为多次合并功能分支而做错了什么?或者我对tortoisehg的日志窗口有太多期待:)?

提前致谢

3 个答案:

答案 0 :(得分:4)

图表看起来像这样,因为修订版按其修订号排序。主存储库具有订购的修订版,编号如下:

0 Imported initial repo.
1 Trivial change to also echo b.
2 Added another echo for c.
3 Echo for d.
4 Echo for e.

这反映了将更改集添加到存储库的顺序。功能分支存储库具有以下顺序:

0 Imported initial repo.
1 Trivial change to also echo b.
3 Added another echo for c.
4 Automatic merge...
5 Echo for d.
6 Automatic merge...
7 Echo for e.
8 Automatic merge...

所有的一切都很好地排序。但是,当您将功能分支拉入主存储库时,只会添加缺少的更改集。因此,主要的结果是:

0 Imported initial repo.
1 Trivial change to also echo b.
2 Added another echo for c.
3 Echo for d.
4 Echo for e.
5 Refactored echos to print.
6 Automatic merge...
7 Automatic merge...
8 Automatic merge...

,图表反映了这一点。

如您所知,存储库很好 - 这只是如何在磁盘上订购更改集的工件。如果需要,您可以将存储库与带有丑陋图形的图表交换,因为它们现在包含相同的更改集。只需记住从.hg/hgrc移动任何重要设置(使用丑陋的图形从克隆中复制文件)。

顺便说一下,当我查看我的http://hg.intevation.org/mercurial/crew/(Mercurial的开发分支)的克隆中的图形时,将它与https://www.mercurial-scm.org/repo/hg的新克隆中的图形进行比较(主要分支为Mercurial)我看到了同样的现象。

答案 1 :(得分:1)

获得“更好”图形的一种方法是使用具有紧凑图形模式的pre 2.0 TortoiseHg。在这种模式下,您的第二个存储库只有两列线,类似于您的第一个屏幕截图。

不幸的是,此功能尚未从GTK移植到Qt,因此在TortoiseHg的当前版本(2.1.2)中不存在。

答案 2 :(得分:0)

当你仔细观察时,你会发现两个图(几乎)相同,但表现形式不同。那看起来像3个不同的分支,实际上是一个分支,但略有不同。

我写了“差不多”,因为修订号已被重新排序。这真的很奇怪......