如何在同一项目但不同的存储库中检查 Azure DevOps 中的递归子模块

问题描述 投票:0回答:1

与访问不同项目的这些不同

与使用github的不同:

与此不同,因为它是访问另一个项目,而不是同一个项目。

无论如何,我的布局足够简单,我有一个包含以下 git 存储库的项目

  • my-repo(具有子模块 my-app、my-service-a、my-service-b)
  • 我的应用程序
  • my-service-a(具有子模块 my-lib)
  • my-service-b(具有子模块 my-lib)
  • 我的库

.gitmodules 使用 my-repo 中的子模块文档所需的相对路径。gitmodules 看起来像

[submodule "my-app"]
    path = my-app
    url = ../my-app
[submodule "my-service-a"]
    path = my-service-a
    url = ../my-service-a
[submodule "my-service-b"]
    path = my-service-b
    url = ../my-service-b

我也尝试过完整的网址,但没有成功。

结账步骤是这样的

steps:
  - checkout: self
    submodules: recursive
    persistCredentials: true

但最终我得到以下结果

克隆到“/home/vsts/work/1/s/my-app”... 远程:TF401019:名称或标识符为 my-app 的 Git 存储库不存在,或者您没有执行正在尝试的操作的权限。 致命:找不到存储库“https://dev.azure.com/XXXXXXXXXXXXXXXXXX/_git/my-app/”

git azure-devops azure-pipelines git-submodules
1个回答
0
投票

无论我使用完整的 URL 还是类似

url = ../my-app

的 URL,我都可以使用与您相同的布局和结帐步骤成功克隆子模块

repo

测试结果:

log

要访问同一项目中的存储库,请仔细检查选项“保护对 YAML 管道中存储库的访问”是否已关闭。 Protect access to repositories in YAML pipelines 如果仍然无法签出子模块,请检查

管道构建服务帐户

是否具有存储库的读取权限。 详细步骤请参考这里

© www.soinside.com 2019 - 2024. All rights reserved.