1. 程式人生 > 其它 >linux下svn遷移目錄操作

linux下svn遷移目錄操作

由於最開始建立svn資料存放目錄的時候沒有放到資料盤,後面因為專案資料增多了,導致svn資料目錄滿了,必須要處理了,否則svn都不能正常用了!

可以看到最開始,我是把svn資料目錄設定在/var/svn下面的,現在有56G的資料,加上其他的資料,根目錄的空間70G已經用完了。

檢視磁碟可以看到/home目錄下還有很多空間,可以把svn的資料轉移過去,那該怎麼轉移呢,下面記錄一下我的方法

1、用 svnadmin dump 命令來備份打包庫資料,其中game為我的專案資料夾

svnadmin dump /var/svn/game > /home/game-backup.svn

操作成功,會看到如下顯示:

2、在/home目錄下建立新的庫地址

svnadmin create /home/game

3、把備份檔案還原到新的目錄

svnadmin load /home/game < /home/game-backup.svn

還原的過程中,會輸出這些內容,我這裡只是模擬格式,不是真實的,僅供參考哈,等待還原完成即可

<<< Started new transaction, based on original revision 1
    * adding path : xxxx ... done.
    * adding path : xxxx ... done.
    
* adding path : xxxx ... done. * adding path : xxxx ... done. ..... ------- Committed revision 1 >>> <<< Started new transaction, based on original revision 2 * adding path : xxxx ... done. * deleting path : xxxx ... done. ..... ------- Committed revision 2 >>>

這時候如果你直接去客戶端操作svn,是會報錯的,例如:

因為我的/var/svn/game 這個目錄名稱我已經改了,為了和新目錄區分,我改成了game_old,但是現在提示找不到game這個路徑,但是我明明在/home/game 這裡建立了呀,而且資料也遷移過來了,為什麼呢

通過檢視svn程序執行的情況發現,svn服務端設定的目錄還是/data/svn(這裡的/data/svn和我上面提到的/var/svn是一個概念,不要糾結為什麼不一樣),原來/hom/game這裡只是一個數據倉庫,並沒有和svn服務端設定的根目錄路徑相匹配,所以客戶端訪問會提示找不到路徑,這個時候就需要kill掉svn的程序,重新啟動並修改路徑為/home/svn(上面我沒有建立svn目錄,可以遷移之後再建立或者事先建立好都可以),這樣客戶端應該就可以正常使用了,遷移目錄就完成了!