You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Subversion检出失败报错:E175002: CRLF expected at end of chunk: -1/-1

解决Jenkins从Visual SVN Server检出大项目时的CRLF Chunk错误

我之前在Windows环境下处理过类似的Jenkins+SVN大项目检出问题,这个svn: E175002: CRLF expected at end of chunk错误大概率和大文件传输时的网络中断、SVN客户端的HTTP配置,或是Jenkins服务的运行限制有关,给你整理了几个实用的排查和解决步骤:

1. 调整SVNKit的HTTP超时与缓冲区参数

Jenkins用的是SVNKit这个Java版SVN客户端,你可以通过修改Jenkins服务的启动参数来优化传输配置:

  • 找到Jenkins的Windows服务(右键「此电脑」→「管理」→「服务和应用程序」→「服务」),右键Jenkins服务选择「属性」
  • 在「常规」标签页的「可执行文件路径」末尾,添加以下JVM参数:
    -Dsvnkit.http.timeout=3600000 -Dsvnkit.http.buffer-size=10485760
    
    这里把超时设为1小时(3600000毫秒),缓冲区调到10MB,避免大文件传输时因为超时或缓冲区溢出中断。
  • 重启Jenkins服务,再尝试检出项目。

2. 放宽Visual SVN Server的请求限制

Visual SVN Server默认对大请求的大小有限制,这会导致REPORT请求失败:

  • 打开Visual SVN Server Manager,右键你的目标仓库→「属性」→「HTTP设置」
  • 把「最大请求大小」调整为更大的值(比如10GB,对应字节数10737418240),同时把「连接超时」设为3600秒(1小时)
  • 重启Visual SVN Server服务,让配置生效。

3. 切换到SVN原生协议(替代HTTPS)

HTTPS传输大文件时容易受SSL握手、防火墙或代理的干扰,试试改用SVN协议:

  • 在Visual SVN Server Manager中,右键服务器→「属性」→「网络」,确保勾选了「启用SVN协议」(默认端口3690)
  • 修改Jenkins项目里的SVN地址为svn://你的服务器IP/myrepo
  • 检查Windows防火墙,允许3690端口的双向通信,然后重新触发检出。

4. 优化Jenkins服务的权限与内存配置

Jenkins作为Windows服务运行时,权限不足或内存不够也会拖垮大文件传输:

  • 右键Jenkins服务→「属性」→「登录」,确保运行服务的账户拥有本地管理员权限(至少要有工作区目录的读写权限,以及访问SVN服务器的网络权限)
  • 同样在启动参数里添加内存配置,比如-Xmx4g -Xms2g,给Jenkins分配4GB最大堆内存,避免内存不足导致传输中断。

5. 尝试增量检出或拆分项目

如果项目实在太大,一次性检出风险太高,可以试试:

  • 先在Jenkins服务器上用命令行svn checkout https://example.com/myrepo手动完成第一次检出,然后让Jenkins直接使用这个本地目录作为工作区,后续只做增量更新
  • 或者把大项目拆成多个子模块,在Jenkins里分别检出每个子模块,减少单次传输的数据量。

6. 更新Subversion插件(SVNKit)

你的Jenkins版本是v2.107.2,自带的SVNKit可能比较旧,存在大文件传输的已知bug:

  • 进入Jenkins的「插件管理」→「已安装」,找到「Subversion Plugin」,检查是否有可用更新,更新到和Jenkins版本兼容的最新版
  • 更新完成后重启Jenkins,再测试检出。

内容的提问来源于stack exchange,提问作者JackPGreen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:04:47