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

來源:互聯網
上載者:User

接上篇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環境下建立任務,大同小異,相信大家都能輕鬆搞定。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.