2009-07-21 144 views
12

通過複製現有項目在TFS中創建全新項目的最佳方式是什麼?TFS:從TFS中的現有項目創建新項目

我有一個ASP.NET項目,每年將有50多個「發佈」。每個版本都是一個獨立的實體,需要獨立於所有其他實體。一旦創建,我想確保任何更改(源項目或副本)不會影響另一個。

這僅用於源代碼管理。我不需要複製任何工作項目。

在TFS之前的世界中,我會通過簡單地複製包含所有項目文件的文件夾來做到這一點。這讓我有了90%的新應用程序,然後我可以爲新版本量身定製。我很少需要爲基礎應用程序添加功能,即使在執行時也不會影響現有的應用程序。這仍然可以使用TFS,通過複製我的本地文件夾,然後將副本添加到TFS作爲一個新的項目?

有什麼建議嗎?每個版本的一個分支看起來像這樣做的「標準」方式,但我會很快結束與幾十個真正無關的分支,並且我寧願將每個新項目都保留爲自己獨特的項目,而沒有機會一個影響另一個的變化。

謝謝!

  • 感謝您的回覆。我想你們都已經給了我足夠的洞察力來開始。理查德,謝謝你的細節。我有點擔心,意外合併分支機構可能太容易了。

回答

5

實際上有兩個問題在這裏:

1)複製/粘貼或分支是否更好?

我敢說,複製/粘貼永遠不適合。除非您非常小心(至少在複製之前立即運行'tfpt treeclean'),否則很可能您最終會在一些不適當的文件中檢查新位置。另外,你將在服務器上使用更多的磁盤空間,因爲它必須存儲50多個完整副本,而不僅僅是差異。

事實上沒有分支機構「意外」陷入困境的危險。將分支合併到一起涉及至少3個有意的步驟:將合併(本身爲4頁嚮導),然後解決所有衝突,然後簽入。

你也不會對你在樹中的位置感到困惑。 TFS使用「路徑空間」分支。這意味着分支對用戶來說顯示爲源樹中獨立的物理位置,而不僅僅是同一路徑上的版本標籤。由於分支看起來像文件夾,因此您可以對其執行所有常規文件夾操作:Cloak(不要將它們下載到本地工作區),Permission(特別是刪除某人的Read權限將確保他們甚至不能看到它),刪除或銷燬(當你真的完成它們)。

2)何時適合創建新的團隊項目?

這是一個比較複雜的話題。 Official guidanceMy opinion

但是,我會說你的情況很簡單:不要這樣做。團隊項目有很多開銷。有一個finite number you can create on a server ......曾經。不要忘記其他形式的開銷,比如項目管理員移植所有設置所需的時間,以及團隊中的每位開發人員花費重新連接其團隊資源管理器的時間。

所有的爲什麼?上面的鏈接詳細介紹了可以在單個團隊項目中創建的子結構形式。總之,幾乎任何事情都是可能的。唯一有點缺乏的領域是團隊查詢和構建定義,它們僅限於一個容器文件夾,以及諸如Exclusive Checkout這樣的一些設置全部或全無。除非你有一個非常龐大或非常多元化的團隊,否則每個版本的單獨團隊項目的好處都不可能超過缺點。

當然,如果一個「發佈」是一個重大事件,表明您的SCM實踐發生了變化,那麼這就是另外一個故事。新的SCM =>新的流程模板=>新的團隊項目。但我懷疑你一年做50次以上:)

+0

「官方指導」鏈接已死亡。 – HK1 2016-12-21 22:09:37

4

我會推薦使用分支。爲主分支中的每個版本創建一個分支。只要你不合並分支,他們將保持獨立。對主分支的更改只會影響這些更改後創建的版本。

你可以複製文件並創建一個新的項目,但你可能會遇到兩個問題:

  • 該項目的「記得」,他們在TFS,有位工作手冊的清理特殊文件等
  • TFS可能會減慢,當你有很多項目,有分支的單個項目相比
1

這聽起來很明顯,但你應該只爲「新項目」創建一個新項目。這聽起來像你在談論的是同一個項目的不同版本。

如果您想爲以前的版本維護獨立的代碼庫,那麼就像其他答覆者所說的那樣,分支代碼是您的最佳選擇。當您想要將最新版本的錯誤修復合併到舊版本時,這種方式非常有效。

但是,如果你真的必須有新的項目,你仍然以相同的方式使用分支。