2008-11-20 95 views
4

我有兩個分支,主分支(黑色)和功能分支(黃色)。tortoisehg日誌窗口奇怪的輸出

正如你所看到的,因爲特性分支是分叉的,它是不斷更新讀取更改從主:

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

當我重新集成的特性分支的主要原因之一,日誌窗口顯示這種醜惡圖:

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

它顯示每個合併點作爲與特性分支合併一個新的分支。如果我有幾個功能分支,這幾乎不可能讀取。我也試過hg view,結果甚至更加怪異。

無論上面顯示的圖片,最終的合併結果都很好,但帶有重新集成的分支的圖形很讓我煩惱。

我是否通過太多次合併到功能分支來做錯事情?或者我期望tortoisehg的日誌窗口太多:)?

在此先感謝

回答

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的主分支)的新副本中的圖形進行比較時,我看到相同的現象。

0

當你仔細看,你會看到,這兩個圖是(幾乎)相同,但表現是不同的。這看起來像3個不同的分支,實際上是一個分支,但呈現略有不同。

我寫了「幾乎」,因爲修訂號已經重新排序。這真的很奇怪......

+0

第一張圖片屬於分支存儲庫,第二張圖片屬於原始圖片,但分支回購的更改合併了回來。不應該兩個圖像看起來一樣嗎? – azkotoki 2009-04-06 16:07:16

+0

它解釋了很多。不同版本庫中的版本數量不必相同。顯然,主分支合併爲第一個,然後第二個分支合併,最後 - 存儲庫的一端。版本號不同,但仍有相同的兩個分支。 – 2009-04-06 22:00:16

1

獲得「更好」圖形的一種方法是使用具有緊湊圖形模式的pre 2.0 TortoiseHg。在這種模式下,您的第二個存儲庫只有兩列線,類似於第一個屏幕截圖中的內容。

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