2010-08-31 127 views

回答

6

main reason why you branch將隔離開發工作。

所以這真的取決於你認爲最重要的是要隔離:

  • 一個給定版本(這將是促進步中隔離提交:測試,集成或督促/修補程序)促銷努力
  • (包括單元測試,整合,生產階段)

代碼升級允許每個版本的並行升級努力(您在開發n + 2時測試n + 1並維護N)。
雖然Branch per Release允許更簡單更順序的開發週期,但您在開發n + 1時主要測試和維護n。

無論選擇的策略是,你需要解決n和之間的同步步驟N + 1(是什麼,你什麼時候合併變陣從N至N + 1):

  • 隨着代碼推廣您可以在不同的步驟合併
  • 對於每個版本的分支,您通常只從一個版本合併到另一個版本的當前開發狀態​​。

所以基本上,代碼升級策略意味着更多的分支機構,更多的合併和更精確的歷史被保存和孤立在這些分支機構。
但它意味着更多的環境來設置和管理。

Branch Per Release更直截了當(前提是您能夠知道您正在處理的內容將最終成爲下一個版本的一部分)。

+0

在每個發佈場景的分支中,什麼能夠防止您在測試n + 1和維護n時開發n + 2? – vlfig 2012-12-04 22:58:48

+0

@vlf nothing:在代碼升級中它只是更詳細(即「更多分支」),因爲您將代碼從功能分支提升到集成分支,以便爲給定版本'n'釋放分支。 – VonC 2012-12-05 06:51:32

+1

Sooo,當你說「代碼升級允許每個版本的並行升級工作」時,你會受到不必要的限制(兩者都允許),並且當你說「Branch per Release允許更簡單的更順序的開發週期時,你主要測試和在開發n + 1時維護n「你意味着每個版本的分支不允許在兩個以上的分支上進行活動,這顯然是不真實的。 – vlfig 2012-12-06 23:19:45