无法使用 git-client 插件在 jenkins 中检索 git 子模块

Unable to retrieve git submodule in jenkins with git-client plugin

我试图让 Jenkins 检索存储库的子模块,但我无法让它工作。我在互联网上四处寻找解决方案,但那里的大多数问题都与身份验证有关,在本例中这不是问题。从我从错误消息中收集到的信息来看,这个问题似乎与 git-client 插件处理来自命令行工具的响应的方式有关。

由于我们为 Windows 版本 2.6.0 安装了 Git 并且 Jenkins Git-client 插件 'officially' 支持版本 2.5.0,我也尝试卸载版本 2.6.0 和安装的版本 2.5.0,但没有区别。

这里有没有人对这个问题有任何经验或可能的解决方案? 错误是:

FATAL: Command "c:\Program Files\Git\bin\git.exe submodule update" returned status code 1:
stdout: 
stderr: Cloning into 'mysubmodule'...
error: cannot spawn echo : No such file or directory
bash: /dev/tty: No such device or address
error: failed to execute prompt script (exit code 1)
fatal: could not read Username for 'http://somerepo': No error
Clone of 'http://somerepo/scm/bf/mysubmodule.git' into submodule path 'mysubmodule' failed

我遇到了同样的错误,使用相同版本的 Git 和 Jenkins Git-client 插件。 看起来这可能是主存储库的 .gitmodules 文件中的错误和子模块配置错误的组合。而且错误消息绝对没有它应该有的帮助!

在我的例子中,主存储库中的 .gitmodules 文件包含子模块的绝对 url 路径。这导致 Jenkins 无法正确验证子模块。将子模块路径更改为相对路径 (../mysub.git) 为我修复了它。

这对我帮助很大: https://issues.jenkins-ci.org/browse/JENKINS-31244

希望对您有所帮助。