該圖看起來像這樣,因爲修訂版本是按修訂號排序的。主存儲庫的修訂版本的順序編號如下:
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的主分支)的新副本中的圖形進行比較時,我看到相同的現象。
第一張圖片屬於分支存儲庫,第二張圖片屬於原始圖片,但分支回購的更改合併了回來。不應該兩個圖像看起來一樣嗎? – azkotoki 2009-04-06 16:07:16
它解釋了很多。不同版本庫中的版本數量不必相同。顯然,主分支合併爲第一個,然後第二個分支合併,最後 - 存儲庫的一端。版本號不同,但仍有相同的兩個分支。 – 2009-04-06 22:00:16