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

时间:2015-08-23 09:54:50

标签: git tfs build asp.net-core

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

我们的项目分为1个巨大的基础项目,所有其他项目依赖于子项目。在构建子项目时,我因此也需要查看那个项目。在TFSVC构建中,这可以在" source"构建定义的选项卡,您可以在其中准确指定构建代理要为您获取的项目。

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

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

有没有人有类似的经历,并找到了更好的方法呢?

1 个答案:

答案 0 :(得分:2)

您可以在每个其他项目中将主项目添加为 submodule

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

该另一个项目的git clone --recursive也将自动克隆您的主项目,作为子目录 如“git submodule tracking latest”中所述,该主项目子模块将在每个git submodule update --remote跟踪其最新的上游回购主分支。

git-tfs doesn't support submodule yet开始,您需要回退到命令行。

注意:由Daniel Mann提及in the comments

  

TFS在一个团队项目中支持多个存储库。没有必要在自己的团队项目中拥有每件事物   这实际上与当前的项目组织指导相反

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

Daniel在Many Git Repositories, but one Team Project to rule them all

中提到了博文“Willy-P. Schaub