2011-09-20 82 views
1

我目前已經有很多團隊項目都由TFS高興地管理。Team Foundation Server 2010 - 分支還是不分支?

我有一個項目,一個Windows應用程序,目前正在使用,並且在我將代碼移植到TFS之前,我們手動使用腳本來複制/合併文件,以維護生產版本和新的開發版本。

例如App1 v1.x - 製作和 App1 v2.0開發中。

在TFS之前,我們手動「合併」到開發構建到生產構建的錯誤修復 - 所以在v2中適用的錯誤修復也在v2中修復。

在這種特殊情況下,v2是完全不同的,重新考慮ui等。我的問題是將此場景移植到TFS的最佳方式是什麼。

當我看到它,我有兩個選擇:

  1. 創建一個新的團隊項目,然後手動繼續「合併」適用 代碼文件。

  2. 從當前項目v1創建一個品牌,並在VS中逐個替換/覆蓋項目,以便源代碼管理可以將更改管理回主團隊項目。 V2也有一些額外的類庫 - 如果這有所作爲。

回答

3

通常情況下,這是我們用來做分支和合並策略:

  • 項目啓動。所有團隊成員正在CURRENT分支中使用1.0版本。
  • 項目接近里程碑或發佈。建立一個分支,用於穩定PROD 1.0分支中的生產代碼。現在,一半的團隊穩定了分支上的產品,一半的團隊繼續在CURRENT分支上進行新的(有風險的)工作。
  • PROD 1.0分支已準備就緒並已投入生產。該分公司保持完好無損,爲交付的版本提供維護和支持。修復程序在PROD 1.0分支上進行併合併到CURRENT分支中。
  • 項目接近另一個里程碑或發佈。創建一個新的分支,用於穩定PROD 2.0分支中的生產代碼。如前所述使用相同的機制。

使用此分支發佈策略,您始終有一個每個分支的分支和維護版本,可以在版本和主流CURRENT開發線之間輕鬆向前和向後傳播修補程序。

在這方面,我們使用TFS團隊項目對某個產品進行多次發佈。這限制了創建和維護項目空間的開銷。

+0

優秀的答案你們倆。我曾經懷疑這是要走的路。實際上,我目前在TFS源代碼控制中正確組織了生產項目。我有更新的V2解決方案不受管理 - 但已經進行了需要合併回生產v1.z版本的更改。
因此,根據您的建議,您建議爲App V1.z創建一個分支,然後直接從我的非託管V2解決方案應用重要的,有風險的更改。對於我們在V1.z中修復的更改可以合併回Main?這是要點嗎? – sambomartin

+0

這正是使用它的方式。我有以下鏈接,你可以看看:http://msdn.microsoft.com/en-us/library/aa730834(v=vs.80).aspx。沒關係它是VS2005,仍然適用。 – kroonwijk

+0

很好的鏈接謝謝。從我可以看到的鏈接中的分支每發佈示例建議爲每個新版本創建一個分支。反其道而行之後會有什麼特別的好處/後果嗎? (即生產部門和開發部門) – sambomartin

2

總之......要分支!

看來你的版本之間的代碼非常類似,你應該很簡單地分支你的新版本。

在一般情況下,更改爲新的團隊項目是有道理的,如果你有一個或多個以下:

  • 的要求和/或不同的工作項目類型一個全新的麪包
  • 完全不同的技術換句話說,你已經從根本上改變了設計&合併比獲得
  • 需要存儲的文檔在其他SharePoint站點
  • 不同的發展methodolo &其他標記的詳細損失GY - 流程模板
  • 不同的人合作雙方,可能球隊想要從觀看V1或V2
  • 計劃完全不同的發佈週期,以釋放兩個產品
  • 需要完全分開報告限制用戶

閱讀您的文章我不認爲創建一個新的團隊項目後需要去 - 當然我可能是錯的。

如果您決定使用分支變體,您可以從令人印象深刻的Visual Studio TFS Branching Guide 2010中獲益良多,其中介紹瞭如何塑造代碼庫的結構。

+0

+1鏈接到分支指南。對分支感興趣的任何人閱讀。 – AaronS

+0

感謝pantelif,非常有用+1。給第一個答案增加了更詳細的評論。 – sambomartin

相關問題