我们使用CentOS 7并在存储库中安装最新版本的apache和svn:
Server version: Apache/2.4.6 (CentOS)
svnadmin, version 1.7.14 (r1542130)
将文件夹添加到服务器上的存储库时,名称中包含空白(“测试文件夹”),将添加该文件夹。但是一旦我尝试在文件夹中添加文件,我就会收到错误:
File not found: transaction '2086-1p6', path '/test%20folder/test.txt'
在客户端,我使用命令行svn工具和TortoiseSVN(版本1.9.2)进行了测试
使用wireshark检查提交时,我可以看到路径中的空白在PUT上被编码两次(到%2520):
PUT /svn/repos/IT/!svn/wrk/5bd09f52-ff13-0c4a-822e-cc29d91498ba/test%2520folder/test.txt HTTP/1.1\r\n
在没有空格的文件夹中,即使文件名称中有空格,提交也能正常工作
我找到了以下建议来解决问题:
https://bugs.launchpad.net/ubuntu/+source/subversion/+bug/1285204
但我不想从源代码手动编译和安装SVN,因为我们希望继续使用CentOS正式发布的版本。
我希望我在这篇文章中包含了所有必要的信息,如果没有,请告诉我,我会补充一些必要的信息。