我有一个Jenkins v2.107.2实例(作为Windows服务运行),它从Visual SVN服务器(在单独的Windows PC上)通过Subversion检出几个项目。
其中一个项目(最大的 - 约2.7GB)偶尔会出现,但在尝试结帐时会出现以下错误:
ERROR: Failed to check out https://example.com/myrepo
org.tmatesoft.svn.core.SVNException: svn: E175002: CRLF expected at end of chunk: -1/-1
svn: E175002: REPORT request failed on '/svn/REPO/!svn/vcc/default'
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:112)
此外,在检查Visual SVN服务器的日志时,我可以看到以下内容:
Error writing base64 data: The timeout specified has expired [500, #70007]
A failure occurred while driving the update report editor [500, #70007]
Provider encountered an error while streaming a REPORT response. [500, #0]
此前,降级Jenkins& amp;一个版本的Subversion插件解决了这个错误,但是尽管自那以后没有更改版本,但这不再有效。
从在线查看,Subversion中似乎存在某种超时,如果超过一定时间,请求将被终止。但是,所有指令都引用了Subversion配置,该配置应该在%APPDATA%\ Roaming中,我似乎没有。
Jenkins Subversion documentation建议C:\Windows\SysWOW64\config\systemprofile\AppData\Roaming
,但我再也没有。
我已经安装了TortoiseSVN,它确实创建了Subversion配置文件夹。我修改了http-timeout
,然后将此配置放在文档建议的所有位置,但这没有任何区别(但是它是否因为它没有修复问题,或者它没有被接收 - 我不确定。)
答案 0 :(得分:1)
对于使用SVNKit支持Subversion的产品-Jenkins,Fisheye,Crucible等,可能发生此错误E175002: CRLF expected at end of chunk: -1/-1
。对于svn.exe,TortoiseSVN或本机JavaHL库,不应发生该错误。
根据我的经验,以下解决方案可以解决问题-在SVNKit中启用假脱机。查看这些票:
该错误是由SVNKit产生的,它在Jenkins中用于启用SVN客户端功能。 SVNKit是Subversion的单独重新实现,并且SVNKit可能具有其自身的详细信息,这可能导致实际Apache Subversion客户端不会发生的问题或错误。我不是SVNKit的专家,但是在我看来,您已经遇到了此类SVNKit特定的问题,或者至少是错误的措辞。
答案 1 :(得分:0)
对于Windows上的Jenkins,您需要编辑Jenkins安装目录中的jenkins.xml文件(例如C:\ Program Files \ Jenkins \ jenkins.xml)。
为哈德森添加一个使用SVN假脱机的选项
<service>
...
<arguments>
...
-Dhudson.spool-svn=true
...
</arguments>
...
</service>