Azure DevOps 构建中出现“在 .gitmodules 中找不到子模块路径的 url”错误

2023-12-21

存储库(“网站”)有一个子模块(“模板”)。该子模块在存储库的目录中被引用。目标是使用 Azure DevOps 管道一起构建存储库和子模块。但是,Azure DevOps 构建会引发以下错误:

  • fatal: No url found for submodule path '<repo directory AKA "website">/<submodule directory AKA "template">' in .gitmodules
  • [error]Git submodule update failed with exit code: 128

根据调整情况.gitmodule文件,也会抛出此错误:

  • fatal: no submodule mapping found in .gitmodules for path '<repo directory AKA "website">/<submodule directory AKA "template">'.

这个问题与 Stack Overflow 上提出的其他问题类似,但不同之处在于 Azure DevOps 构建中的默认初始步骤是签出分支中的文件。所以脚本(比如git rm --cached <pathtomodule>) 不能先运行。

“网站”和“模板”存储库位于同一个 Azure DevOps 项目中。

我尝试了两种方法都没有成功。两者均基于 Microsoft 文档。这是因为我不清楚同一项目的子模块是否可以在不提供显式凭据的情况下包含在存储库中。

  1. 通过用户界面:

    • “清理选项”:“所有构建目录”
    • “签出子模块”:True
    • 分支包含 .gitmodule 文件:True
  2. 通过 PowerShell 任务中的 git 命令:

尝试了两者的变体:

$AUTH=$(echo -n ":$(PAT)" | openssl base64 | tr -d '\n')
git -c http.https://dev.azure.com/organization/project/_git/template.extraheader="AUTHORIZATION: basic $AUTH" clone https://dev.azure.com/organization/project/_git/template --no-checkout --branch master

and

git -c http.https://dev.azure.com/organization/project/_git/template.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" submodule update --init --recursive
  • 未成功测试的构建在没有 .gitmodules 文件的分支和具有 .gitmodules 文件的分支上进行。
  • 在 Bash 和(稍作调整)PowerShell 中测试构建任务均未成功。
  • 未能成功测试 Azure DevOps 存储库 URL 的各种结构(例如https://organization.visualstudio.com/project/_git/repo, https://$(PAT)@organization.com.visualstudio.com:/project/_git/template, etc.).

尝试过的其他事情是上述内容的变体,包括git submodule add在 PowerShell 任务之前submodule update命令,运行ls -lR在 Bash 任务中调查是否下载了子模块文件(即使文件丢失,构建任务有时也会指示成功)以及 .gitmodules 文件的无穷变化。

正如 .gitmodules 现在的样子(不成功):

[submodule "template"]
    path = <repo directory AKA "website">/<submodule directory AKA "template">
    url = https://dev.azure.com/organization/project/_git/template

变化包括:

  • [submodule "<repo directory AKA 'website'>/template"]
  • path = D:\\a\\1\\s\\<repo directory AKA "website">\\<submodule directory AKA "template">
  • path = $env:Build.SourcesDirectory/template
  • url = ../project/_git/template

...以及更多加上所有各种组合。没有一个是成功的。

我真的被困住了,很欣赏任何见解。谢谢。


不确定这是否有帮助,但对于重新定位的子模块(从存储库中的 /my-submodule 移动到 /src/my-submodule ),我一直在努力解决相同的错误。正在做git rm --force /my-submodule,提交并推送到远程为我解决了这个问题。

我发现使用git submodule status有助于本地检查子模块状态是否正确。我尝试后git rm它停止报告错误“致命:在 .gitmodules 中找不到子模块路径‘my-submodule’的 url”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure DevOps 构建中出现“在 .gitmodules 中找不到子模块路径的 url”错误 的相关文章

随机推荐

  • RecyclerView适配器自定义监听器接口

    我有一个带有自定义侦听器的 RecyclerView 我想在我的主要活动中实现它 以便在单击 RecyclerView 项时收到通知 但是 我不知道该放在哪里setMyAdapterListener在适配器中 我会把它放在哪里 public
  • 在 C++ 中填充 stl 字符串

    我在用着std string并需要将它们左填充到给定的宽度 在 C 中执行此操作的推荐方法是什么 输入示例 123 填充至 10 个字符 示例输出 123 123前7个空格 std setw setwidth 操纵器 std cout lt
  • Vertex 中的 R iGraph 热图

    我对 R 很陌生 有一个问题被困住了 是否可以在顶点上打印热图iGraph 我知道我可以做一个彩色的正方形或圆形 但是小型热图可能吗 这是绘制我当前图表的代码 create graph graph lt graph data frame n
  • 对非分层代码使用版本控制?

    我正在考虑将运行多个网站的代码库放入版本控制中 该代码库有多个实例在不同的虚拟服务器上运行网站 我正在解决的问题是 每个或多或少相同代码的单独实例都有具有特定于站点的功能的子目录 但版本控制系统似乎想要控制整个目录层次结构 例如 每个实例都
  • 在哈希图特征向量上运行感知器算法:java

    我有以下代码 它将目录中的许多文件读入哈希映射 这是我的特征向量 从某种意义上说 它没有阻止 这有点天真 但这不是我现在最关心的问题 我想知道如何使用这个数据结构作为感知器算法的输入 我想我们称之为 词袋 不是吗 public class
  • 如何理解 gsub(/^.*\//, '') 或正则表达式

    分解下面的代码以理解我的正则表达式和gsub理解 str abc def ghi rb str str gsub str ghi rb 字符串的开头 转义字符 从开始到最后出现的所有内容 在字符串中 我对这个表达的理解正确吗 如何 到底工作
  • 使用 void 指针连接两个数组 (C)

    我想将两个相同类型的数组连接成一个具有相同类型的新数组 但问题是我必须使用void指针 不知怎的 我的代码从第三个元素开始就无法工作 我在网上搜索了一下 但似乎没有人遇到这个问题 include
  • 在相机/预览运行时显式更改 CameraX 焦点? (不仅仅是在构建相机时。)

    如果您想在构建 CameraX 相机时将焦点设置为某个值 例如 10f 这非常简单 通常情况下 previewBuilder new Preview Builder preview previewBuilder build 启动固定焦距相机
  • Python 请求——限制上传速度

    注意 这不是重复的 速率限制上传和下载完全不同 我见过的许多库可以限制下载速率 但不能限制上传速率 这应该重新打开 我正在 Python 中运行大文件上传 2 8 GB 我使用的代码大致如下 files md5 md5hash modifi
  • 将列名作为PreparedStatement的输入参数

    我已经使用过这里的搜索 以及其他论坛 但还没有找到我想要做的事情的确切答案 我知道它可以很容易地以其他方式完成 这只是我正在为大学课程编码的一个小沙箱框架 在真实的环境中我只需要 Spring Hibernate 等 因此 我所做的就是使用
  • MySQL 5 中的多列主键

    我正在努力学习如何使用钥匙并改掉必须拥有钥匙的习惯SERIAL输入我所有表中所有行的 ID 同时 我还在处理多对多关系 因此在协调关系的表的任一列上要求唯一值会阻碍这一点 如何在表上定义主键 以便任何给定值都可以在任何列中重复 只要所有列中
  • 将 Xcode 更新到版本 10.3 (10G8) 后故事板损坏并且应用程序不再运行

    我刚刚将 Xcode 更新到版本 10 3 10G8 Now my project is not run with this error com apple actool errors error Failed to find a suit
  • 默认情况下,git 是否从新存储库中排除 eclipse 项目文件?

    我尝试过将几个 Eclipse 项目推送到 github 存储库 每次我在克隆或将它们带回 Eclipse 时遇到麻烦 原因似乎是当我执行 git add 时 Eclipse 特定的项目文件 project classpath 等 没有暂存
  • 链接描述文件中 *(.data)、*(.data*) 和 *(.data.*) 之间的区别

    只是想知道这种结构之间有什么区别 对于text data rodata bss等 在链接描述文件中 data data data data data data 在所有情况下我们都会聚集data来自所有目标文件的部分 但问题在于细节 快速测试
  • 如何使用合并替换 Laravel 请求中的嵌套数组值?

    有一个函数可以替换请求中的输入 称为合并 我想更改嵌套数组的值 以便可以通过以下方式验证它 this gt validate method 这是的输出 request gt all array 2 type gt customer user
  • 计算当天之间的总天数 (SQL)

    我正在尝试计算当前日期和名为 DayConfirm 日期时间 的特定列之间的总天数 我想在带有 DayChanged 的行旁边的新列中显示总天数到目前为止 我得到了这个 SELECT DATEDIFF CURDATE DayConfirm
  • 如何为 TableAdapter 参数设置值

    Goal 我希望能够有两个组合框 其中一个是第二个组合框的父级或所有者 这意味着每当我在第一个中选择一个值时ComboBox 第二ComboBox将过滤其结果以显示与第一个相关的相应值ComboBox 例如 注意 此示例已以编程方式完成 我
  • 构建仅后台 COCOA 应用程序作为启动守护进程的缺点?

    构建一个没有任何 GUI 的仅后台 COCOA 应用程序并将其作为启动守护进程运行是否有任何缺点 这将使用 import
  • 保存时热重载

    我目前在 OSX 上使用终端和 vim 作为 Flutter 的开发环境 一切进展顺利 只是当我保存任何 dart 文件时应用程序不会重新加载 有没有办法触发这种行为 目前我必须转到终端并按 r 才能查看我的更改 抱歉这个插件 但我写了一个
  • Azure DevOps 构建中出现“在 .gitmodules 中找不到子模块路径的 url”错误

    存储库 网站 有一个子模块 模板 该子模块在存储库的目录中被引用 目标是使用 Azure DevOps 管道一起构建存储库和子模块 但是 Azure DevOps 构建会引发以下错误 fatal No url found for submo