SVN版本庫無損遷移與自動備份(二)


接上篇SVN版本庫無損遷移與自動備份(一)

 

三、定時自動備份版本庫解決方案

1、業務目標
 
①版本庫的遠程自動備份,將版本庫備份到另一台機器上。
假設我們要同步的源版本庫為 http://192.168.1.210/svn/svnprojec位於機器A,具體路徑我們不必理會,因為我們使用http協議
目標庫在機器B, file:///F:/Repositories/svnproject,這個為了簡單和安全,我們使用file://協議


②實現版本庫的本地備份,只需要將上述目標庫的位置,改成本地位置即可。
 
2、相關指令
 
達到備份版本庫的目的要用到兩個命令:


①svnsync init
初始化,建立目標庫和源庫之間的同步關系
命令格式: svnsync init 目標庫URL 源庫URL

(兩個URL之間有空格)


② svnsync sync
真正的同步
命令格式: svnsync sync 目標庫URL


3、過程示例


(1)備份


①在要備份的機器上建立版本庫(如果是本地備份,則在本地建立版本庫):svnadmin create test1BackUp


②進入源版本庫的hooks目錄,例如cdD:\Repositories\TestRepostitory\hooks


③創建pre-revprop-change.bat文件:復制pre-revprop-change.tmpl,將擴展名改為pre-revprop-change.bat,並且清空原有的所有內容,保存。


④修改文件:修改pre-revprop-change.tmpl文件,用記事本打開該文件,把文件最后的exit 1改為exit 0

(原腳本的意思是如果修改的是svn:log屬性,將允許修改,返回0;否則,不允許,返回1,我們要將它改為允許修改所有的屬性,在腳本中直接返回0)


⑤同步初步:          
在目標機器上,打開命令提示符窗口,打開SVN服務器Bin目錄,運行
svnsync init file:///D:/Repositories/test1BackUp  https://192.168.0.110/svn/Test1
(會提示輸入用戶名和密碼,這里提供的用戶名和密碼是可以完全讀取於https://192.168.0.110/svn/Test1的計算機密碼,用戶名和密碼)


⑥實現同步:
在目標機器上,打開命令提示符窗口,打開SVN服務器Bin目錄,運行
svnsyncsync file:///D:/Repositories/test1BackUp
(如果提示輸入用戶名和密碼,你可以在這個命令之后加上 username 、password參數
即svnsync sync file:///D:/Repositories/test1BackUp --username username --password password)
 
注:
第⑤⑥兩步可以直接放在一起,寫入到一個批處理文件(新建記事本,將⑤⑥中的兩句話放入,改記事本后綴為.bat),將該批處理文件放入SVN服務器Bin目錄,雙擊運行即可。一會我們設定執行備份會用到這個批處理文件。
 
如果是本地備份,則只需將目標URL改為本地庫位置即可。(針對VisualSVN,因為一台機器上只能有一個VisualSVN服務器,所以所有版本庫只能在一個目錄下,才能被服務器識別,這樣,備份只能備在相同目錄,似乎意義不大。)
 
如果版本庫較大時,備份的時間會有點慢,花費幾個小時或者一天也是有可能的,
備份完畢,你可以打開目標庫看看,和源庫是一樣的。
 
(2)定時執行備份。
這里我們用到了windows自帶的任務計划程序

①在控制面板\所有控制面板項\管理工具下,打開任務計划程序
 主界面:點擊右側操作的創建任務

 

②開始創建任務,常規選項卡下,主要設置任務的基本信息,這里我們一般給任務起一個名字就可以了,例如SVN同步

 

 

③操作選項卡下,點擊新建,這里可以設定我們要執行的操作。我們備份SVN版本庫,需要執行,剛才設定好的備份批處理文件。這個文件,我們實現應該放在SVN服務器安裝目錄的bin目錄下(不要放錯地方哦)。我們點擊瀏覽,找到這個文件。

 

 

④在觸發器選項卡下,我們可以新建觸發器,這里我們可以設定執行剛才設定的操作的條件。讓其自動執行。

 

⑤條件和設置選項卡下,可以設定執行該任務的其他條件,根據我們自己的情況選擇即可。

 

 

最后確定,大功告成,我們的定時自動備份SVN版本庫的任務就創建成功了。
 

提醒:如果版本庫不是很大,小於15G,完全可以把它建在金山快盤目錄下,使其自動備份到雲端


注:我使用的win7旗艦版,在winXP環境下創建任務,大同小異,相信大家都能輕松搞定。


免責聲明!

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



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