2011-03-02 47 views
3

我想這已經被多次詢問過了,但找不到快速而完整的答案。如何使用TFS正確分支多個版本

假設我從頭開始,希望設置TFS項目來處理兩個並行版本,這兩個版本可能有不同的演變,但我仍然希望能夠在兩個版本中推送一個bug修復,我們稱之爲REL。 A和REL。 B,兩者都會有不共享的代碼更改,但可能是來自REL的錯誤修正。 A應該被推入REL。 B.

從頭開始,我是先創建主還是dev,哪一個是另一個的分支?

REL。 A是Dev還是Main的一個分支?

REL。 B是REL的一個分支。 A還是Main或Dev的分支?

謝謝。

+1

就像澄清一樣 - 發佈版本A和發佈版本B的代碼最終會合併到一起,還是更多地發佈發佈版本A始終與發佈版本B不同? – Robaticus 2011-03-02 13:37:50

+1

總是不同的產品,但是我們需要一個共同的根用來將錯誤修復傳播到兩者,以防錯誤發生在分支之前共享的公共部分。 – 2011-03-02 13:39:54

回答

3

好的。基於此,這是我的高層建議。

由於這些是不同的產品,您可以採用分支產品方法。在這種方法中,您將擁有:

主要 - 基準代碼。
BugFix從主分支。 (這是發生任何共享錯誤修復的地方)
產品A - 從主分支。
產品B - 從主分支。

那麼我會建議「開發」分支分出每個bug修正,A產品,以及產品B分行(只爲好SCM實踐)

大多數你的工作將在完成你的產品分支。如果需要修復一個bug,理想的做法是在BugFix分支進行編碼和測試。一旦它被證明可以使用「root」代碼,你會將該修復合併到MAIN,然後將它合併到產品A和產品B.

在一個不那麼理想的情況下,如果bug在產品A並需要在產品B中反映出來,您可以選擇合併代碼,只需從產品A到MAIN,然後從MAIN到產品B和BugFix。請記住,這是一種危險的方法,因爲您可能會無意中將產品A的功能合併到產品B.