2013-11-15 16 views
1

我有以下TFS配置辦理分支機構和項目TFS的最佳方式引用

Root\ 
    Proj1\ 
    App1\ 
     ... 
    App2\ 
     ... 
    Proj2\ 
    Lib1\ 
     ... 
    Lib2\ 
     ... 

App1和應用2都必須LIB1和LIB2項目引用。 App1未引用App2,而Lib1未引用Lib2。

現在,我想更改LIB1 ......但我想它分支,因爲變化是劇烈的。這些更改不應要求更改app1或app2。

我在TFS中創建了一個分支Lib1Branch1 ...但App1和App2仍然引用Lib1而不是lib1branch1 ...我不想在每個App中手動重新引用分支(實際上我有更多不止兩個)。

當我使用SVN,如果我支項目,並切換到該項目中,本地文件夾保留其原始名稱和唯一的內容改變......因此與LIB的一個分支與建築與其他建築只需要我切換分支並做一個get-all ...如何使用TFS獲得類似的行爲?

回答

3

我認爲你有一個誤解。

項目是一個獨立的部分,是一個稱爲解決方案的大型項目的一部分。例如,一個類庫就是一個項目。它可能會引用其他項目。

有幾種分支方法。次要分支可能只需要在解決方案中分支特定項目(如Lib1),而重大更改可能需要分支整個解決方案。

這聽起來像你需要做的是稍微改變你的TFS結構,然後分支整個事情是什麼。例如,文件夾結構應該類似於以下內容:

Root 
    \1.0 
    \Web Apps 
     \App1 
     \App2 
    \Libraries 
     \Lib1 
     \Lib2 

然後,當您分支時,將佔用整個1.0分支。這樣所有引用都保留在兩個分支之間。

+0

Root是TFS集合,下根兩種TFS項目,在第一個項目是一組的Visual Studio前哨淋巴結用於各種應用,每個這些應用程序的引用來自第二TFS,項目(該庫項目)的各種文件.proj 第二個TFS項目有一套庫Visual Studio SLN。我想在圖書館TFS項目中的特定解決方案中分支特定的項目文件... – Paragon

+0

@Paragon:您可能會重讀我的答案。我理解它是如何構建的,只是它的結構特定方式不利於分散你習慣的方式。這意味着要麼重組TFS項目,要麼因爲分支Lib1而必須與重定向App1一起生活。這不是TFS問題;相反,這只是設置你的TFS服務器的問題。 – NotMe

+0

我設置了TFS服務器:) 但是,您說要做出不影響Lib1的API的更改,我必須將1.0以下的所有內容都分支出來?我可以理解,如果我正在建立一個永久分支,但我希望分支更有選擇性。 雖然我設法找到了解決辦法。如果您將Lib1上的分支設置爲Lib1_Branch1,然後將Lib1_Branch1重新映射到Lib1佔用的同一本地目錄,則可以在Lib2旁邊處理Lib1_Branch1。然後,檢入更改後,將映射設置回正常進行合併。 – Paragon