Jenkins中的Git checkout抛出错误“Filename too long”并失败,如下所示:
hudson.plugins.git.GitException:命令“git.exe checkout -f 2cea7d8eb9185899c01d2ffc86872f584da2e60c”返回状态码1:
标准输出:
stderr:错误:无法创建文件 edgemagic-次世代核/ SRC /测试/资源/ dbunit_test_data / COM / CYBRA / edgemagic /服务/ EmObjectServiceTest /数据/ testInstances_create_dataRequiresData.xml: 文件名太长了
我已将配置文件中的longpaths变量设置为'true',如Filename too long in git for windows和https://sifaserdarozen.wordpress.com/2015/06/25/git-file-name-too-long-error/所示,但它没有帮助。
还有什么我可以做的吗?
答案 0 :(得分:2)
作为一种解决方法,我在jenkinsfile脚本中为WORKSPACE路径定义了一个虚拟驱动器:
bat 'subst W: /d || exit 0' //delete the virtual drive if it already exists
bat 'subst W: "%WORKSPACE%"'
以后删除它:
bat 'subst W: /d'
答案 1 :(得分:2)
如果运行Windows 10 Home Edition,则可以更改注册表以启用长路径。
转到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
中的regedit
,然后将LongPathsEnabled
设置为1
。
如果您使用Windows 10 Pro或Enterprise,则还可以使用本地组策略。
转到Computer Configuration > Administrative Templates > System > Filesystem
中的gpedit.msc
,打开Enable Win32 long paths
并将其设置为Enabled
。
答案 2 :(得分:1)
This answer by Saikat 帮我解决了 Jenkins git checkout 的这个问题。
<块引用>要遵循的步骤(Windows):
git config --system core.longpaths true
注意:如果第 2 步不起作用或出现任何错误,您也可以尝试运行此 命令:
git config --global core.longpaths true
阅读有关 git config
here 的更多信息。
(编辑:请注意,有一个 related answer 建议将设置专门应用于受影响的项目,而不是使用 --system
或 --global
标志。)
答案 3 :(得分:0)
为了使Git正确处理长文件名,需要启用core.longpaths = true。要设置此参数,您可以执行以下操作:
git config --global core.longpaths true