TFS Git项目VNEXT构建中的依赖项目



这更像是一个最佳实践问题,因为我们已经有了一个解决方案,但我很好奇是否有更好的方法来解决这个问题。

我们的项目分为一个大的基础项目,所有其他项目都依赖于它和子项目。因此,在构建子项目时,我也需要检查那个子项目。在tfsvc构建中,这可以在"源代码"上实现。选项卡,您可以在其中准确地指定您希望构建代理为您获取哪些项目。

在git(和VNEXT)中,这个选项卡消失了,取而代之的是指定当前存储库分支的选项。我们通过在每个项目中添加一个powershell脚本来解决这个问题,它只需运行"git clone mainproject",就可以获得与以前相同的效果。

如果我们的主项目URL发生变化,这将意味着我们必须在每个客户项目中更改此脚本,这(虽然不是不可能)将是乏味的。

有没有人有类似的经验,并找到了更好的方法来做到这一点?

您可以将您的主项目作为子模块添加到您的每个其他项目

cd /path/to/otherproject
git submodule add -b master -- https://url/of/main/project

其他项目的git clone --recursive也会自动克隆你的主项目,作为子目录。
如"git子模块跟踪最新版本"所述,主项目子模块将在每个git submodule update --remote上跟踪其上游repo主分支的最新版本。

由于git-tfs还不支持子模块,因此您需要返回命令行。


注意:正如Daniel Mann在评论中提到的:

TFS支持一个团队项目中的多个存储库。没有必要把每个东西都放在自己的团队项目中。
这实际上是与当前的项目组织指导背道而驰的

这意味着每个项目一个子模块的想法,虽然是一个有效的"git"解决方案,但在TFS环境中可能不是最好的。

Daniel提到了来自Willy-P的博客文章"许多Git存储库,但一个团队项目可以统治它们"。他

最新更新