SVN版本庫的備份、還原、移植(初級篇、中級篇和高級篇)


 版本庫數據的移植:svnadmin dump、svnadmin load

導出:

$svnlook youngest myrepos //查看到目前為止最新的版本號

$svnadmin dump myrepos > dumpfile //將指定的版本庫導出成文件dumpfile

導入:

$svnadmin load newrepos < dumpfile

 

中級篇:

$svnadmin dump myrepos –r 23 >rev-23.dumpfile           //將version23導出

$svnadmin dump myrepos –r 100:200 >rev-100-200.dumpfile  //將version100~200導出

對比較大的庫可以分解成幾個文件導出,便於備份

$svnadmin dump myrepos –r 0:1000 >0-1000.dumpfile

$svnadmin dump myrepos –r 1001:2000 --incremental >1001-2000.dumpfile

$svnadmin dump myrepos –r 2001:3000 --incremental >2001:3000.dumpfile

在導入時,可以將這幾個備份文件裝載到一個新的版本庫中

$svnadmin load myrepos < 0-1000.dumpfile

$svnadmin load myrepos < 1001-2000.dumpfile

$svnadmin load myrepos < 2001:3000.dumpfile

 

 

高級篇:

    過濾版本庫歷史:

       假設有三個項目的版本庫

       /RigTMS

       /DocProtect

       /Odin

       現需要將這三個項目轉移到獨立的三個版本庫中,需要做如下操作

       1、轉儲整個版本庫

       $svnadmin dump /path/to/repos > repos-dumpfile

       2、將轉儲文件三次過濾,每次僅保留一個定級目錄,即可以得到三個轉儲文件

       $svndumpfilter include RigTMS < repos-dumpfile > RigTMS-dumpfile

$svndumpfilter include DocProtect < repos-dumpfile > DocProtect-dumpfile

$svndumpfilter include Odin < repos-dumpfile >Odin-dumpfile

       3、雖然現在的RigTMS、DocProtect、Odin都可以用來創建一個可用的版本庫,但他們保留了原版本庫的精確路徑結構(例如: RigTMS的頂級目錄為/RigTMS/trunk、/RigTMS/branches、/RigTMS/tags,而非我們所需要的/trunk、/branches、/tags),如果要實現目標,需要編輯轉儲文件,調整Node-path和Copyfrom-path頭參數,將路徑/RigTMS刪除,同時還要轉儲數據中創建RigTMS目錄的部分。

       Node-path:RigTMS

       Node-action:add

       Node-kind:dir

       Content-length:0

*****特別注意點:如果使用手工編輯dumpfile文件來移除一個頂級目錄,需要注意不要讓使用的編輯器將換行符轉換為本地格式(比如將/r/n轉換為/n),否則文件的內容就與原來的格式不符,這個轉儲文件就失效了。具體做法就是當你在使用編輯器打開文件的時候,編輯器會提示用戶是否需要轉換格式,一定要選擇“否”,切記!!切記!!

       4、接下來就是創建三個新的版本庫,然后將新過濾出來並修改好的三個轉儲文件導入

       $svnadmin create RigTMS;svnadmin load RigTMS < RigTMS-dumpfile

       $svnadmin create DocProtect;svnadmin load DocProtect < DocProtect-dumpfile

       $svnadmin create Odin;svnadmin load Odin < Odin -dumpfile

 

 

****備份環境注意點:

       1、確保沒有其他進程訪問版本庫,關閉apache、svnserve服務

       2、成為版本庫的管理員,如果以其他身份還原版本庫,可能會改變版本庫文件的訪問權限,導致在恢復后依舊無法訪問

       3、svnadmin recover /path/to/repos

       4、重新啟動服務進程

 

原文來自:http://blog.csdn.net/windone0109/article/details/2908133


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM