2013-03-20 47 views
1

在我的工作中,我們有許多單獨的TFS項目組合在一起形成我們的Visual Studio解決方案。這些獨立的TFS項目得到維護,以便我們可以跨多個解決方案重用代碼。無可否認,這是一個壞主意,因爲現在當我們必須分支時,我們必須單獨分支每個TFS項目(我們甚至寫了一個應用程序來做到這一點)。我們結束了一個項目結構,看起來像這樣:git-tfs一個簽入多個tfs項目

$/Production/[superproject]/MAIN 
$/Production/[superproject]/dev/[branch] 
$/Production/[dependency1]/MAIN 
$/Production/[dependency1]/dev/[branch/ 

其中[上層項目]需要[依賴關係1]的解決方案中。我們最終將所有這些項目映射到同一個工作區。

我想在我的日常開發中使用Git-TFS來使用Git。到目前爲止,我發現這樣做的最佳方式是爲每個TFS項目提供一個「master」git repo和一個子模塊。這樣我可以使用git submodule foreach來分支,比較等。

不幸的是,即使變更集跨越多個TFS項目,我們的有關簽入的政策也是爲任務設置一個變更集。如果我的所有更改都受限於一個TFS項目(即一個git子模塊),那麼這很好,但是當我在一個任務中對多個子模塊進行更改時,我不知道該怎麼做。我目前的計劃是使用git submodule foreach 'git-tfs shelve mytask_$name'擱置每個人,然後將每個人都拉入我的TFS工作區,從那裏檢查。這隻適用於我已經映射的任何TFS分支,這首先破壞了使用Git的一半目的。

有沒有人遇到類似的問題?是否有任何解決方案已經在那裏,也許使用TFS命令行&腳本?如果沒有,我想我會花一些時間爲git-tfs創建一個pull請求。如果問題在那裏解決,我很樂意使用Git-TF。

謝謝大家提前。

回答