2012-04-04 43 views
9

我一直在遵循"Team Development with Visual Studio Team Foundation Server"structuring projectssharing code from one team project into another using branching的建議。所以我們的源代碼樹看起來像這樣:無法嵌套TFS分支,因此分支共享代碼不起作用?

server\instance 
    Shared 
    share 
    Project1 
    Main 
     Product1 
     share (branched into Project1 from Shared) 
    Stories 
     1607 
     1832 

或者至少它應該。

正如您所看到的,以及在某些共享代碼中進行分支,我們還使用每個用戶故事的分支。

問題是,當我嘗試從Shared項目(源分支名稱:$/Shared/share;目標分支名稱:$/Project1/Main/share)分支到共享文件夾時,出現錯誤:

TF203028: You cannot create a branch at $/Project1/Main/share because a branch already exists at $/Project1/Main.

據記載,你不能在TFS窩分支機構,因此錯誤也就不足爲奇了。因此,我看起來很糟糕,團隊發展書是錯誤的。 (這本書暗示這應該有效。)

但外觀可能是欺騙性的,我比書的作者更可能是錯的。任何人都可以幫我理解如何解決這個問題嗎? (一個顯而易見的解決方案是讓故事的根源成爲分享的兄弟姐妹,而不是父母,但這對我們沒有任何用處,因爲這意味着我們無法做到更改故事分支中的共享代碼,這相當於破壞了每個故事的分支對象,這也意味着項目中相當大量的工作變更路徑。)

回答

5

我找到了解決方案。

TFS顯示了針對Project1 \ Main的分支圖標,而不是文件夾圖標。我去了 File>Source Control>Branching and Merging>Convert to Folder並將其轉換回一個文件夾。然後,我可以分享到Project1中。

奇怪的是,Main仍然是製作故事分支的一個點,而這些分支依然存在。

真正的解決方案是,我必須將共享代碼分支到項目常規文件夾而不是分支圖標的地方。我去了File>Source Control>Branching and Merging>Convert to Folder並將其轉換回一個文件夾。那時我能夠在Main上創建分支。

關閉Main的分支,並且故事分支保留其分支圖標。現在分享看起來像一個普通的文件夾

+2

您可以使用TFS源代碼管理資源管理器擴展來分支到文件夾,這基本上可以讓您按照自己的意願進行操作。 http://visualstudiogallery.msdn.microsoft.com/c6642e7f-1a58-4ff0-aef9-0322dcc2b28d – jessehouwing 2012-04-04 17:35:50