在服务器上使用旧版本的SVN签出

在服务器上使用旧版本的SVN签出,svn,Svn,我已尝试签出此存储库,但由于主机和客户端计算机上的SVN版本不同,它返回一个解压缩错误: $ svn co http://svn-rdlab.cs.upc.edu/subversion/asiya/public asiya ... A asiya/bin/Asiya.pl svn: E120104: ra_serf: An error occurred during decompression 解压错误似乎来自主机和客户端计算机上的不同SVN版本,类似于此问题: 解决方案是在客户机上使用相同版

我已尝试签出此存储库,但由于主机和客户端计算机上的SVN版本不同,它返回一个解压缩错误:

$ svn co http://svn-rdlab.cs.upc.edu/subversion/asiya/public asiya
...
A asiya/bin/Asiya.pl
svn: E120104: ra_serf: An error occurred during decompression
解压错误似乎来自主机和客户端计算机上的不同SVN版本,类似于此问题:

解决方案是在客户机上使用相同版本的SVN(正如开发人员建议的那样)

但是如何使用旧版本的SVN签出回购?

如果需要更改SVN的版本,那么如何将其更改回当前版本

服务器上的当前SVN版本为:

subversion 1.6.17
客户端版本为:

svn, version 1.8.8

问题在于每个版本使用的HTTP客户端库。默认情况下,1.8.x使用的是
serf
,1.6可能使用的是
neon
。几年前我就有过这个问题,但现在我已经没有关于如何解决这个问题的笔记了,所以这里是我能记住的

最好的选择是升级你的服务器;1.6.x不再受支持,新版本中有安全修复程序(1.6.x行通过安全修复程序一直扩展到23)。是的,我知道升级这样的基础设施不是一件小事,但它是保持环境健康的一部分

有一个
mod\u dav\u svn
配置指令,您可以在服务器上尝试;将
SVNCompressionLevel
设置为
0
将告诉服务器不要使用压缩


如果失败,您可以通过编辑
~/.subversion/servers
,在
[global]
部分,设置
http library=neon
,尝试强制客户端使用
neon
库。如果该库未包含在您的构建中(很可能),这可能不起作用。

要安装旧版本,同时不在
/usr/local/lib
中拧紧版本,请执行以下操作:

mkdir oldsvn
cd oldsvn
sudo apt-get install libssl-dev
wget https://archive.apache.org/dist/subversion/subversion-1.7.18.tar.gz
tar -xvf subversion-1.7.18.tar.gz
cd subversion-1.7.18
./get-deps.sh
cd neon
./configure
make 
sudo make install
cd ..
./configure --with-prefix=/home/alvas/oldsvn/ --with-neon
make
sudo make install
要检查两个版本是否存在,请执行以下操作:

$ cd /home/alvas/oldsvn/bin
alvas@ubi:~/oldsvn/bin$ ./svn --version
svn, version 1.7.18 (r1615261)
alvas@ubi:~/oldsvn/bin$ svn --version
svn, version 1.8.8 (r1568071)
要查看回购协议,请执行以下操作:

alvas@ubi:~/oldsvn/bin$ ./svn co http://svn-rdlab.cs.upc.edu/subversion/asiya/public ~/asiya

感谢您在
ra_neon
上的提示。最后,在客户机上的svn上安装一个向后的版本成功了。我无法控制SVN主机,因为它属于其他人。