linux下svn遷移目錄操作
阿新 • • 發佈:2021-12-16
由於最開始建立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目錄,可以遷移之後再建立或者事先建立好都可以),這樣客戶端應該就可以正常使用了,遷移目錄就完成了!