2017-07-19 29 views
0

我正在尋找正確的分支和合並策略,以適應當前的情況。幾周前,我爲Main版本1.6創建了一個新的Dev分支。這個版本現在正在測試,並將在未來幾周內上線。多個開發分支避免無基本合併

從今天開始,我需要開始1.7版的開發,但我不確定如何在TFS中繼續。我認爲有2個場景:

1. 1.7的開發分支是從Main(像往常一樣)創建的,我將所有1.6的更改集成到1.7分支並開始我的開發。只要準備好進行測試,1.6中的任何更改都將合併到1.7分支中。
2.爲1.7 Dev分支是由分支1.6 Dev分支建立,未來1.6的任何更改將再次合併爲每點1

與#1的問題是實際上沒有直接的根據TFS在1.6和1.7之間的關係導致無根據的合併。
#2的問題在於1.7和Main之間沒有直接關係,這會在1.7完成並與Main進行合併後導致無基本合併。

這是一個無法避免的合併無法避免,或者我的整個策略錯誤的情況嗎?

回答

1

我假設Main代表您的上一個穩定版本,並可能接受修補程序等來解決關鍵問題。我還假設典型的工作流程是開始開發「vNext」版本 - 在本例中爲1.6,然後在該分支上工作,直到完成了它的工作,然後將其合併到Main。問題在於你正在爲下一個版本使用不斷變化的開發分支。你不想分支到1.6到1.7,因爲那麼你最終必須從1.7合併到1.6,然後1.6分支不再準確地反映出1.6是什麼版本。

我簡化了一下。創建兩個 「永久」 分支:

  • Main - 當前的穩定 「生產」 版本
  • Dev - 你在開發版本(1.6,在這種情況下)

開發者可以針對Dev工作一般。當它「完成」併成爲當前的穩定版本時,它合併到Main

現在,您可以製作功能分支(用於長期運行的獨立功能,不一定會在下一個版本中使用)或「vNext」分支(針對下一個版本的功能發現你有能力比預期更早開始工作)。

現在您可以爲您的1.7工作創建一個關閉Dev的分支,並將您的1.6更改反向整合到1.7中。當1.7成爲新的開發目標時,將1.7合併到Dev,並刪除1.7分支。

如果要維護較舊的版本,可以使用Main分支上的標籤來表示每個穩定版本,或者可以創建發佈分支來表示它們。

+0

感謝您的反饋。我認爲你提出了一個體面的解決方案。對於這個版本,只要1.7版本在開發中,我將使用1.6 dev分支,並將其用作您建議的'永久'Dev分支。我已經從1.6分支創建了1.7,並將其用作中間體來防止無端合併。 – MeanGreen

相關問題