git-tfs一个签入多个tfs项目

时间:2013-03-20 18:58:51

标签: tfs git-tfs git-tf

在我的工作中,我们有许多单独的TFS项目,它们组合在一起形成我们的Visual Studio解决方案。维护这些单独的TFS项目,以便我们可以跨多个解决方案重用代码。不可否认,这是一个坏主意,因为现在当我们必须分支时,我们必须单独分支每个TFS项目(我们甚至编写了一个应用程序来执行此操作)。我们最终得到了一个如下所示的项目结构:

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

其中[superproject]在解决方案中需要[dependency1]。我们最终将所有这些项目映射到同一个工作区。

我想使用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。

提前谢谢大家。

1 个答案:

答案 0 :(得分:1)

我认为这里有一种努力:https://github.com/git-tfs/git-tfs/pull/350 你可以看一看并做出贡献;)