2015-10-05 128 views
0

我试图让Jenkins检索存储库的子模块,但是我无法使其工作。我在互联网上浏览过一个解决方案,但是大多数问题都以认证为中心,在这种情况下这不是问题。从我能从错误信息中收集到的信息,这个问题似乎与git-client插件处理来自命令行工具的响应的方式有关。无法使用git-client插件在jenkins中检索git submodule

由于我们安装了Git for Windows 2.6.0,并且Jenkins Git-client插件'正式'支持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 

回答

1

我已经经历了同样的错误,同版本Git和詹金斯Git的客户端插件。 看来,这可能是主存储库的.gitmodules文件中的子模块的错误和错误配置的组合。并且错误信息绝对不如它可能的有用!

在我的情况下,主存储库中的.gitmodules文件包含子模块的绝对url路径。这导致Jenkins无法正确验证子模块。将子模块路径更改为相对(../mysub.git)为我解决了这个问题。

这帮助我不少: https://issues.jenkins-ci.org/browse/JENKINS-31244

我希望对您有所帮助。