2011-04-15 37 views
2

我們在單個存儲庫中使用了mercurial。我們有一個master分支和一個develop分支(以及功能分支,但它們與手頭問題沒有密切關係)。如何通過mercurial修復先前版本中的錯誤?

我們用版本(5.1.0.102等)標記master分支。我們在develop上進行開發。

但是現在我們要修復以前版本中的錯誤。關於這個問題,在這裏有很多關於SO的問題,但是他們都沒有解釋我想做什麼。

我想要做的是這樣的:

  1. 更新的地方,我們公佈的點(比如6.1.1)
  2. 固定在該版本中
  3. 標籤,該標籤產生的代碼狀態的一些bug如(6.1.2)
  4. 構建這個新的6.1.2代碼庫。
  5. 將這些修復程序遷移到develop分支
  6. 以這種方式執行此操作,以便我可以返回到6.1.2並在需要時修復錯誤。

我似乎無法通過更新來做到這一點。我試圖更新到6.1.1,創建一個分支,然後從那裏開始,但是這帶來了master分支的提示,包括所有後續更改。

有沒有這樣做的標準方式?我是否正確地解釋了這些,以便你們得到我需要做的事情?看起來這是一件很常見的事情。

回答

7

您不需要顯式創建分支。我會這樣做的方式是:

  1. 更新到您發佈的點(主分支中的6.1.1)。
  2. 進行更改並提交它們。
  3. 將master中的最新提交標記爲6.1.2。
  4. 將這些更改拉入開發分支。
  5. 繼續工作。

如果您需要做出更多更改,則只需重複上述操作,但在主分支中使用6.1.2標籤即可。

+0

完美 - 感謝您幫助我以正確的方式思考。 – 2011-04-15 18:26:50

2

你真的不需要創建一個命名分支,除非你真的想擁有一個完整的分支。你可能想要做的是:

  1. 更新到6.1.1
  2. 進行編輯
  3. 承諾(將創建一個新的未命名的分支)
  4. 標記,新版本爲6.1.2 。
  5. 然後,您可以合併該編輯到您的開發分支

只要你早於尖端更新到版本在主分支,提交將一個新的分支關閉它。

這將使版本標記,以便您可以輕鬆地返回到該版本。

+0

cdeszaq - 對不起,他把你打倒了。 ;-) 非常感謝。 – 2011-04-15 16:49:07

相關問題