在服务器上签出旧版SVN

时间:2014-11-24 12:07:51

标签: 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版本,类似于此问题:Cannot svn update, An error occurred during decompression

解决方案是在客户端使用相同版本的SVN(由开发人员http://nlp.lsi.upc.edu/redmine/boards/12/topics/135建议)

但是我如何使用旧版本的SVN结帐回购?

如果需要更改SVN的版本,然后如何将其更改回当前版本?

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

subversion 1.6.17

,客户端版本为:

svn, version 1.8.8

2 个答案:

答案 0 :(得分:3)

问题在于每个版本使用的HTTP客户端库。 1.8.x正在使用serf,1.6可能默认使用neon。几年前我遇到过这个问题,但是我没有注意到我如何修复它,所以这就是我记得的。

最好的选择是升级您的服务器;不再支持1.6.x,并且在较新版本中有安全修复程序(1.6.x行已经一直到23个带有安全修复程序)。是的,我知道升级像这样的基础设施不是一件小事,但它是保持环境健康的一部分。

您可以在服务器上尝试mod_dav_svn配置指令;将SVNCompressionLevel设置为0会告诉服务器不要使用压缩。

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

答案 1 :(得分:3)

安装旧版本而不是搞砸/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