SVN服務器搭建、備份及多服務器同步方案(Windows)


雖然Git比SVN強大,已經統治了代碼管理領域,但Git是具有一定門檻的,對非開發者來說並不那么友好。相對來說,SVN雖然功能沒那么強悍,但是服務端搭建簡單、客戶端操作門檻低,文件管理對大多數普通用戶來說已經夠用,因此還是有一定的生存空間的。

SVN服務端“VisualSVN Server”下載地址:https://www.visualsvn.com/server/download/

SVN客戶端TortoiseSVN下載地址:https://tortoisesvn.net/downloads.html

一、安裝服務端

首先安裝VisualSVN Server,沒什么好講的因為都是無腦下一步,頂多改下倉庫根目錄和端口號。至於HTTP還是HTTPS,看個人喜好吧。

安裝完之后從開始菜單找到VisualSVN Server Manager,里面可以增刪倉庫、管理用戶、用戶組及訪問權限。

1

這就算搭建好了,新建一個倉庫和一個用戶,再在倉庫上分配Read/Write權限給該用戶即可。

然后就可以通過地址:http://ip/svn/倉庫名  訪問倉庫了。

客戶端小烏龜的使用不在本文描述范圍,網上都說爛了。

 

二、備份方案

網上有很多種備份方案,各種腳本、步驟,搞得很復雜。我只推薦以下方案,快速、簡單、暴力!

備份:

svnadmin hotcopy E:\SVN\Repositories\xxx E:\backup\xxx

還原(可直接用VisualSvn import):

svnadmin hotcopy E:\backup\xxx E:\SVN\Repositories\xxx

對多個倉庫備份可分別執行。

 

三、多服務器同步方案

本文以一台主服務器一台備份服務器為例。

1、假設你已經在主服務器有了一個倉庫A,並且已經運行了很久,想復制到備份服務器。最好兩台服務器上都建一個備份用戶,給予讀寫權限,用相同賬號密碼,方便。

2、使用hotcopy進行備份,並將其拷貝到備份服務器的任意臨時文件夾(非必須,只是不拷貝的話第一次直接進行同步的話會非常慢)

3、在備份服務器創建A的同名倉庫

4、如有Hotcopy備份,用它覆蓋該倉庫的所有文件;

5、改Hook -> Pre-revp-change值為以下內容:

echo "Changing revision pp other than svn:log is prohibited" >&2
exit 0

6、打開命令行工具,初始化A倉庫

//替換為你自己的倉庫路徑
svnsync init file:///E:\Repositories\A http://主服務器/svn/A --username 賬號 --password 密碼
 
//如果你是用hotcopy覆蓋的,用下面的這個
svnsync --allow-non-empty init file:///E:\Repositories\A http://主服務器/svn/A --username 賬號 --password 密碼

3

 

成功后執行以下代碼進行同步,到此備份結束,以后要手動同步都只執行它:

svnsync sync file:///E:\Repositories\A

4

注意這個命令是一次性的,每次想同步都要執行一次。如有多個倉庫直接寫個批處理.bat就好。

 

7、當然,如果備份服務器想實時同步,需要在主服務器上改Hook post-commit:

svnsync sync --non-interactive http://備份倉庫地址/svn/備份倉庫路徑 --username 賬號 --password 密碼

 收工。

 

 

出處:http://blog.viiio.com/topic/347


免責聲明!

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



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