2012-03-28 219 views
1

我的.NET WPF項目使用的源代碼控件是TFS。該項目的客戶都是公司內部的。在不久的將來,由於一系列特殊要求,我們將只向一個客戶發佈一個版本。源代碼管理:支持多個版本的軟件

因此,我們計劃在TFS中創建另一個分支並納入這些要求。問題在於客戶可能需要長期支持此版本,並且可能只需要在產品中添加缺陷修復程序,而不是將任何新功能添加到主分支中。儘管目前這種方式非常易於管理,但我擔心的是,1 - 2年後,我們最終可能擁有多個源代碼分支,這將導致支持n個版本的可維護性問題。

您能否建議一些方法來保持整個情況的可管理性,或者我們創建多個分支機構的方法本身是否是錯誤的。

回答

1

我會說這個問題是關於一個企業,然後關於使用的技術。

您確定這是您的唯一一位需要貴公司這種待遇的客戶嗎(我認爲這是重要客戶)?

  • 是的。在這種情況下只需創建一個分支。設置自動測試腳本。上承諾您提供的主分支也應該存在int 客戶分支進行合併。運行你每晚腳本是否完整

  • 號我要說不作分支,在這一點上(在你到底想怎麼樣多少分支機構管理現代化的..),並在代碼使用配置選項。這意味着明確區分一個客戶或另一個客戶可用的功能。這些功能可以基於應用程序配置文件中的某些配置選項提供。如果你想讓這些東西更加棘手,因爲客戶端可以操作文件,可以創建許可證類型(密鑰),他們可以計算散列彙總不共享功能的可用性。

不幸的是分支在集中式代碼版本控制系統中總是令人頭痛。在分佈式系統中,它的管理方式要好得多,但順便說一下,完全避免衝突(尤其是長期運行)在兩種情況下都幾乎是不可能的。

祝你好運。

+0

這個配置選項聽起來是個不錯的主意。我會試試這個。 – ganeshran 2012-03-29 12:24:47

1

我建議你爲發佈的版本創建分支,並且在你從該分支創建的每個後續發行版上(因爲你只是在進行錯誤修復),每次從「bug修復分支」發佈時,都不要重新分支,但創建一個標籤,以便您可以輕鬆地進行參考。

+0

這與我們目前的計劃相同。但我擔心的是,一兩年後,可能會有很多分支從主分支走出來,所有分支都有特性和錯誤修復混合匹配 – ganeshran 2012-03-28 18:34:36

+0

@Jason:並且不要忘記合併您的發佈分支'在分支開始偏離太多之前,bug修復到主幹/主分支。 – 2012-03-28 18:37:03

+0

@ ganeshran爲了實現這一目標,確保您的客戶在需要重大功能​​工作時從主分支開始獲得新版本。那麼你可以從那時起忘記他們以前的分支。 – 2012-03-28 18:40:14

1

我的建議是,你可以通過Visual Studio ALM Rangers來研究TFS分支指南。這只是一些閱讀,但是很好,你應該能夠找到適合你的場景 - 而且在使用TFS時是明智的。您可以在這裏找到:http://vsarbranchingguide.codeplex.com/