2013-03-20 46 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。

谢谢大家提前。

回答