svn commit提交大文件报413错误但TortoiseSVN可正常提交求解
成因分析
- 两者默认HTTP传输策略不同是核心诱因:TortoiseSVN默认开启分块传输编码(Chunked Transfer Encoding),提交大文件时会自动拆分为多个小于服务端阈值的分片传输,不会触发大小限制;而原生svn命令行客户端默认关闭分块传输,会将50MB的文件作为单个HTTP请求整体发送,直接触发服务端配置的单请求大小上限,返回
413 Request Entity Too Large错误。 - 部分场景下命令行默认关闭HTTP传输压缩、启用批量更新的配置,也会进一步拉高单请求的体积,更容易触发阈值。
解决方案(无需修改服务端配置)
单次提交临时生效
执行commit命令时添加参数临时开启分块传输即可:svn commit --config-option servers:global:http-chunked-requests=yes -m "你的提交说明"
全局永久生效
修改SVN客户端的servers配置文件,对齐TortoiseSVN的默认行为:
- 打开对应路径的配置文件:
- Windows:
%APPDATA%\Subversion\servers - macOS/Linux:
~/.subversion/servers
- Windows:
- 找到
[global]配置段,添加/修改如下参数:http-chunked-requests = yes - 保存文件后重启终端即可,后续所有svn命令行提交都会默认使用分块传输。
内容的提问来源于stack exchange,提问作者mediocrite
相关产品推荐
相关产品推荐

