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 的語法略有區別。