【问题标题】:TFS Build with multiple repos with .gitmodules file is not working使用 .gitmodules 文件构建多个 repos 的 TFS 不起作用
【发布时间】:2020-02-23 13:19:38
【问题描述】:

我在从 repo 获取内容时遇到了 TFS git 的问题。

repo1创建一个构建管道,我想获取repo2的内容,所以在repo1的构建管道中添加了.gitmodules下面一行的文件

git submodule add http://mytfs:8080/tfs/collection/project/_git/repo

并使用选项checkout git modules 运行 repo1 构建,但它只获取 repo1 的来源,而不是 repo2。如何获取其他 repo 的内容?

试过这个https://www.benday.com/2016/11/04/one-tfs-build-multiple-git-repositories-with-submodules/,但没有任何帮助。

【问题讨论】:

  • 您只想在构建中获得 repo2 吗?如果是,为什么你可以只对这个 repo 做 git clone,你不需要子模块
  • @ShaykiAbramczyk 我需要获取多个 repos
  • 您好 user2153844,您有机会实施我建议的解决方案吗?你能解决吗?如果我的回复有帮助或给出了正确的方向。感谢marking it as an answer,这也将帮助社区中的其他人。

标签: git tfs


【解决方案1】:

首先,确保您从 git 创建子模块遵循 official tutorial

构建管道将检查您的 Git 子模块,只要它们是:

  • 未经身份验证:公开的、未经身份验证的存储库,没有凭据 需要克隆或获取。
  • 已验证: 包含在与指定 Git 存储库相同的项目中、GitHub 组织或 Bitbucket Cloud 帐户 以上。

    使用相对于主存储库的 URL 添加。例如, 这个会被签出:git submodule add /../../submodule.git mymodule 这个不会被签出:git submodule add https://dev.azure.com/fabrikamfiber/_git/ConsoleApp mymodule

确保您已使用 HTTPS 而不是 SSH 注册子模块。

代理用于从主存储库获取源的相同凭据也用于获取子模块的源。

如果您的主存储库和子模块位于 Azure DevOps 项目的 Azure Repos Git 存储库中,则您可以选择用于访问源的帐户。在“选项”选项卡的“构建作业授权范围”菜单上,选择:

  • 使用项目集合构建服务的项目集合 帐号
  • 当前项目要使用 Project Build Service 帐户。

确保您使用的任何帐户都可以访问主存储库和子模块。 如果您的主存储库和子模块在同一个 GitHub 组织中,则存储在 GitHub 服务连接中的令牌用于访问源。

【讨论】:

  • 要描述更多 - 在 TFS 2015 1) 我有“Test2” repo,其中 .gitmodules 文件映射到“Test1” repo。 2) git submodule add tfs.test.com:8080/tfs/gh-encore/ASP.Encore-SSP/_git/Test1 3) 在 TFS Build – 指向 Test2 中,我检查了选项 – “checkout sub modules” 4) 在目标服务器上我没有看到 repo-Test1 的文件内容
猜你喜欢
  • 1970-01-01
  • 2018-11-30
  • 1970-01-01
  • 2015-06-29
  • 2021-08-19
  • 1970-01-01
  • 2016-08-22
  • 1970-01-01
  • 2012-04-24
相关资源
最近更新 更多