我有两个分支,主分支(黑色)和功能分支(黄色)。
正如您所看到的,由于功能分支是分叉的,因此它保持最新从main获取更改:
alt text http://azkotoki.org/images/stackoverflow/tgh-reintegrate1.gif
当我将功能分支重新集成到主分支时,日志窗口会显示这个丑陋的图表:
alt text http://azkotoki.org/images/stackoverflow/tgh-reintegrate2.gif
它将每个合并点显示为与功能分支合并的新分支。如果我有几个功能分支,这将几乎不可能阅读。我也试过了hg view
,结果甚至更奇怪。
无论上面显示的图片如何,最终的合并结果都很好,但重新整合的分支图表让我很烦。
我是否因为多次合并功能分支而做错了什么?或者我对tortoisehg的日志窗口有太多期待:)?
提前致谢
答案 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个不同的分支,实际上是一个分支,但略有不同。
我写了“差不多”,因为修订号已被重新排序。这真的很奇怪......