Jenkins git checkout中的“文件名太长”错误

时间:2017-07-20 18:25:40

标签: git jenkins

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 windowshttps://sifaserdarozen.wordpress.com/2015/06/25/git-file-name-too-long-error/所示,但它没有帮助。

还有什么我可以做的吗?

4 个答案:

答案 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):

  1. 管理员
  2. 的身份运行Git Bash
  3. 运行以下命令:

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