svn 代码都会备份储存在远程的服务器上,以避免哪天公司的svn 服务器瘫痪了,无法在短时间内恢复,或是自然灾害所有的数据都丢失,有了这些储存在远程服务器上的代码,很容易短时间内恢复生产。
但是储存在远程服务器上的代码需要时不时的从远程服务器上下载下来进行测试(以保证代码在急用的时候可以立即使用)
我的测试环境
centos 6.8 + usvn 1.0.6 + svn 1.6.11 + apache 2.2.15 + php 5.3 + Database PDO_MySQL
如果svn 的部署在虚拟机上,其实可以直接克隆svn 服务器,把这个服务器的备份部署在网络里(),以便服务器在短时间无法修复的时候可以立马使用(而且有条件的话这个备份文件也可以储存在远程服务器上)。
我在测试过程中发现原svn 运行环境已经升级
Centos 7.4 + Usvn 1.0.7 + svn 4.8.19 + apache 2.4.6 + php 5.4.16 + Database PDO_MySQL
所以当把备份从远程服务器上拷贝到备份服务器svn repo 路径的时候,usvn 显示:
Can't list subversion repository: svn: Unable to open an ra_local session to URL svn: Unable to open repository 'file:///var/www/html/usvn/files/svn/wrws_priips' svn: Expected FS format between '1' and '4'; found format '6'
备份服务器使用的是 svn 1.6,svn 服务器使用的是 svn 1.8.
“PathSvn”/”ProjectName”/db/format
修改
6
layout sharded 1000
To
4
layout sharded 1000
可能还会遇到权限错误:
Can't list subversion repository: svn: Unable to open an ra_local session to URL svn: Unable to open repository 'file:///var/www/html/usvn/files/svn/svn/wrws_priips' svn: Can't open file '/var/www/html/usvn/files/svn/svn/wrws_priips/format': Permission denied
chown -r apache:apache projectName (修改为apache 服务器可以访问的权限)
还因为apache 服务器版本不同一个使用的是2.2,一个是2.4 所有httpd.conf 的语法略有区别。