2012-04-11 46 views
0

我在使用SVN的開發團隊中工作。我們始終保持穩定且可拆卸的後備箱。所有的開發都在分支上完成,然後在準備發佈時合併到主幹。如果在合併到主幹之前需要查看/測試某些內容,我們可以將該分支(可稱爲功能分支)部署到其他開發人員和/或項目經理可以看到的開發環境。這在大多數情況下運作良好。它不能很好地工作的原因是我們有多個不同的分支,這些分支是同一個發佈週期的一部分,但不一定相互關聯,在同一時間段內所有分支都可以合併到主幹之前都需要獲得批准。我們考慮的是將它們全部合併到一個組合發行版分支。那麼問題是,如果只有一部分合並的分支被批准發佈,我們需要在我們轉到主幹之前重新合併沒有這些分支。我們基本上必須進行兩次合併 - 一次到開發或功能分支,然後可能第二次將已批准和可發佈的分支合併到主幹。SVN開發實踐 - 如何從分支機構轉移到組合分支機構

有沒有更好的方法來做到這一點?我覺得如果我們從個人分支合併到一個功能分支,然後再將這些分支合併到主幹,我們可能會遇到問題。我是否正確地認爲或者這不是問題?

回答

0

這不是Tags的用途嗎?

在處理個別功能時分支。將它們全部合併回軀幹進行測試。測試完成後,錯誤已經修復,並準備好發佈,標記幹線。然後你每個版本都有一個標籤。

我真的不明白需要在trunk中只有可釋放的代碼。當然,在主幹中永遠不會有無法釋放的代碼幾乎是不可能的(如果你原諒雙重否定)。

+0

我們可以利用最後一個穩定版本的標籤而不是我們目前的策略 - 但兩者都是有效的。我相信,現在我遇到的問題不會更好或更糟。即使我們確實承諾將trunk作爲標準,我們仍然不希望將分支承諾到trunk,直到他們按計劃發佈。例如,如果分支A和B被合併爲主幹,但分支B未被批准啓動,那麼我們必須從主幹中取消分支B合併以獲得分支A直播。 – natealvar 2012-04-16 02:23:25

1

繼Aphillippe的建議之後,您可以進一步從主幹創建發佈分支,然後爲每個個體patch release添加標籤。

此方法允許任何活動缺陷在發佈分支上與主幹隔離(這些修補應該合併回主幹)。隔離使客戶能夠獲得缺陷修復程序,而無需升級到最新版本的軟件 - 這可以使他們免受可能與「全面」升級相關的潛在實質性測試時間。

+0

這與我們現在所做的相似。我們不向客戶發佈代碼,我們發佈到一個實時Web應用程序,但我知道這種方法仍然適用。我遇到的問題是測試和安排這些分支機構與主幹的合併,並在開發環境中與分支機構合作。 – natealvar 2012-04-16 02:33:28