2012-06-13 30 views
1

當我們發佈新版本時,我需要創建一個時間點分支。Mercurial:如何爲每個版本創建分支

因此,每次向服務器發佈新版本時,我都有針對所有開發的默認分支,以及V1,V2等分支。

所以,如果我有默認的開發分支。 V1在Live服務器上。 V2在測試服務器上。

如何處理以下情況:

  • 一個bug在V1發現,並且改變需要V1,V2,和默認去?

  • V2在某個時間點進行並進入測試服務器,開發過程中連續使用默認的多個功能。在對V2進行了一些測試之後,該功能尚未完成,默認情況下的某些更改集應該在V2中合併 - 但不是所有的更改集?

回答

5

通常的方法是找到導入bug的變更集(在V1的分支點之前),並提交修訂作爲該變更集的子項。這將引入一個新的頭部,然後您可以將其合併到您想要修復的分支中,在這種情況下爲V1,V2和默認值。

此方法被稱爲「daggy fixes」。

或者,您也可以在一個分支上修復它(例如默認),然後使用graft命令將它選擇到其他分支上。但這並不好,因爲變更集會出現三次,如果您再次將兩個分支合併在一起,可能會導致合併問題。

相關問題