我们使用 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 正式发布的版本。
我希望我在这篇文章中包含了所有需要的信息,如果没有,请告诉我,我会添加必要的信息。