2010-09-30 113 views
5

我剛剛從SVN切換到樹幹幾個更改後,我將合併一系列修訂(從我的最後一個合併樹幹到branhc - HEAD)到一個分支。我想用Mercurial使用TortoiseHG做同樣的事情,但我無法弄清楚如何。我只是向trunk提交了兩個變更集,現在我需要分支來整合這些變更。提前致謝!Mercurial/TortoiseHG合併樹幹更改爲分支

回答

7

在hg(或任何DVCS)中,您可以將任何變更集與任何其他變更集(祖先除外)合併。如果您從TortoiseHG(瀏覽器上下文菜單中的查看更改日誌或命令行中的hgtk log)打開存儲庫日誌,則可以更新爲任何更改集,然後選擇「合併」。

在你的具體情況下,你會更新到你的分支頭,然後合併後備箱頭。

+0

由於SVN轉換,我的情況並不像這個那麼直截了當,但是今後我會採取確切的方法。 – Chris 2010-09-30 18:58:05

+0

@Chris:你願意分享你的設置細節嗎?你有什麼樣的分支結構? – 2010-09-30 19:42:47

+0

我試圖將我的主幹合併到我的分支中,但由於我的存儲庫是使用HG CONVERT從SVN回購庫創建的,HG並不知道我已經從主幹一路合併了更改。我執行從樹幹到分支的合併,選擇保留分支上的所有更改。我承諾。這使得HG認識到我的箱子已經合併到了分店。然後我在主幹上執行了新的變更,承諾,現在當我合併時,HG知道這些新變更是唯一需要合併的變更。現在HG知道我的存儲庫中究竟是什麼。 – Chris 2010-09-30 23:27:49

2

這是我通常做的:

hg up trunk #assuming trunk is your main branch 
hg merge -r myawesomebranch 
#party 
22

我已經寫working with branches in Mercurial的指南。它歸結爲:

$ hg update mybranch # unless you are already at the tip of the branch 
$ hg merge default # merge in latest changes from "trunk" 
$ hg commit -m 'Merge with default' 

mybranch完成後,關閉它,並將其合併到默認:

$ hg commit --close-branch -m 'Ready for merge' 
$ hg update default 
$ hg merge mybranch 
$ hg commit -m 'Integrated mybranch' 

約水銀很酷的事情是,你使用相同的命令問題上沒有哪個方向你正在合併。 Subversion的合併跟蹤系統要求你在一個方向上合併時添加特殊的命令行標誌,但不能在另一個方向上合併(我不記得手冊中沒有查看哪個方向)。

+0

您能否提供指南的更新鏈接?這個評論中的一個被打破了。 – 2012-10-18 16:57:08

+0

當然,我已修復鏈接! – 2012-10-18 20:59:45

相關問題