是否存在處理TFS工作分支中的外部依賴關係的「最佳實踐」?我的意思是,我們在TFS中有一個包含常見第三方庫的項目(在這種情況下,我專門處理log4net),我們根據需要將其分支到其他項目中。現在我們正在對一個單獨的工作分支進行重大改變,這需要更新的組件版本。它看起來基本上是這樣的:TFS 2010:如何處理工作分支上的外部「分支」依賴關係
$/ThirdParty
/bin
/log4net
$/Product
/Main
/thirdparty
/lognet <-- $/ThirdParty/bin/log4net
/Working1 <-- $/Product/Main
/thirdparty
/log4net <-- $/Product/Main/lognet <-- $/ThirdParty/bin/log4net
部分工作需要根據.NET 4客戶端配置文件重新構建log4net並引入新版本。通常,當我們升級第三方組件時,它會在相應的文件夾中檢入$/Thirdparty
,然後各個項目可以自由合併最新的二進制文件,或者不合適,因爲他們認爲合適。
至於我能確定,爲了從$/ThirdParty/bin/log4net
獲得最新的變更我需要合併到這$/Product/Main
,檢查合併到TFS,將此分支合併到$/Product/Working1
。這正是我想要避免的,因爲我不想破壞主分支。
所以,我想兩個問題:
有沒有辦法讓這個合併,而無需任何檢查到主分支工作?
是否有更好的整體策略來處理這些類型的依賴關係,同時仍然保持它們在TFS中? (我知道TFS對於二進制文件不是「意味着」的,但我們喜歡它,因爲我們從中獲得了簡單的多版本和歷史跟蹤)。
最終,工作分支中的版本凹凸也會在主布譜中產生,而不是立即產生。如果我直接在Working1中進行無基礎合併,那麼此更改集想要在稍後再合併到Main中嗎?而我們在TFS中保存二進制文件的原因是爲了讓所有項目都保持在同一版本的某些庫上(特別是像log4net這樣的強名稱)。由於我們的核心庫引用它,其他所有內容都必須使用相同的版本,否則我們必須執行運行時程序集綁定重定向。 (這次SNK發生了變化,即使這樣也行不通。) –
是的。在向Working1進行無基本合併之後,可以將Working1合併到Main或從ThirdParty合併到main中(或者兩者兼而有之,並且TFS應該知道二進制文件是相同的)。我們強迫我們發佈的所有應用程序使用相同版本的第三方dll,而且我還沒有處理強名稱的第三方dll,所以我會記住你的方式,因爲我的下一個第三方dll會強名。 –