1

我正在将esp-idf作为我的开发子模块,我也集成了 Jenkins。它运行完美,没有在 Jenkins 上添加浅克隆功能。但是,当我尝试使用深度为 1、5 到 10 的浅克隆来克隆子模块时,它会引发与以下相同的错误,

克隆到“平台/esp32”... 致命:参考不是树:286202caa31b61c2182209f37f8069a0b60fb942 无法在子模块路径“SDK/平台/esp32”子模块中签出“286202caa31b61c2182209f37f8069a0b60fb942”SDK 子模块失败

但是,它可以在 git 命令和没有 Jenkins 的情况下正常工作。

任何帮助都会对我有益。

我的 Jenkins 设置如下所示,

在此处输入图像描述

4

1 回答 1

1

Jenkins issue 60204 for git-scm plugin中也报告了这一点。
确保您拥有该插件的最新版本。

尝试清理与作业相关的 Jenkins 工作区(在WS cleanup plugin的帮助下)

JENKINS 63581 所述

您作为 config.xml 上传的作业定义包括“结帐前清理”行为,但不包括“擦除工作区”行为。

“结帐前清理”行为保留现有的 git 存储库(.git目录),但删除未跟踪的文件。
它使用git clean -xfd命令执行此操作。

如果工作空间先前已填充存储库内容,则“结帐前清理”不会删除先前创建的内容。

git 插件试图通过在同一工作空间中跨多个构建保留 git 存储库来减少数据传输。
您需要添加“擦除工作区”以确保两个工作区具有相同的内容。

如果擦除工作区仍然显示差异,那么很可能是由于使用了两个版本的命令行 git 而存在差异。

OP Bhargav Lalaji评论中补充道:

我正在检查git不同系统上的命令行,并且在其他系统上设置了 Jenkins。
检查 git 版本后,它们都有不同的版本。

将 git 版本从 2.7.4 升级到 2.34.1 后,我可以使用 Jenkins 签出带有浅克隆的子模块

于 2022-01-13T17:07:24.090 回答