我是新來的mercurial,我讀過,它不可能合併另一個分支的一個單獨的變更集。 那我就不知道什麼是解決,最好的辦法:從另一個分支合併只有一個變更集
- 我開始有穩定的版本R1
- 我繼續R1發展:CS1,CS2,CS3
- 在某些時候,我需要解決我穩定版本R1中的錯誤。並且我想僅應用來自開發線的一個變更集(鐵CS2)
什麼是最好的方法?由於合併不起作用,我所做的就是創建一個CS2補丁,然後在新穩定分支中應用該補丁來修復該錯誤。這是Mercurial的方式?
乾杯,
我是新來的mercurial,我讀過,它不可能合併另一個分支的一個單獨的變更集。 那我就不知道什麼是解決,最好的辦法:從另一個分支合併只有一個變更集
什麼是最好的方法?由於合併不起作用,我所做的就是創建一個CS2補丁,然後在新穩定分支中應用該補丁來修復該錯誤。這是Mercurial的方式?
乾杯,
的transplant extension自動化你做一個簡單的命令是什麼。
但我認爲首選的方式(取決於場景並不總是可行的)是首先將修補置於R1
之上,然後將其合併到開發提示中。
即:
R1
。cs1...csN
。R1
之上,所以你hg update R1
。R2
。hg update csN
。hg merge R2
,hg commit
...csN+1
工作。指點滿分當移植工作的時候,當你做了一些不太理想的事情時,它可以作爲一種後備工具。如果你小心你的變更集的出身,你總能得到你想要的合併。 –
這個答案已經過時,不再需要擴展,就像Hg 2.0一樣(見下面的答案) – Larzan
UPDATE:無需任何擴展了,因爲汞2.0
是「CAD傢伙」指出,這是graft命令正是爲這汞柱2.0中引入的。
SourceTree
要做到這一點,最簡單的方法是使用像SourceTree一個GUI,只是在目標分支雙擊切換,然後按上的任何其他修改鼠標右鍵並選擇「移植'命令(奇怪的是它也可以是當前分支的修訂)。 如果沒有衝突,SourceTree將立即爲當前分支創建一個新的修訂。
TortoiseHg
完全一樣,選擇目標分支,那麼人民幣在修訂要嫁接:How to graft with TortoiseHg
命令行
要使用命令行這樣做只是切換到TARGET分支,然後執行
hg graft -r {revision_number}
{revision_number}顯然是您想要合併到當前分支的版本號。這將在當前分支中創建一個新的變更集,其中包含修訂版中您在該命令中使用的所有文件。
要了解更多關於閱讀這個線程這裏的移植命令上stackoverflow
嫁接它:http://stackoverflow.com/questions/16898906/how-to-graft-with-tortoisehg –