该图看起来像这样,因为修订是按其修订号排序的。主存储库的修订排序和编号如下:
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...
再一次,一切都很好地订购了。但是,当您将功能分支拉入主存储库时,只会添加缺少的变更集。因此 main 中的结果是:
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的主要分支)我看到了同样的现象。