1、安裝服務器。我選擇了比較好用的VisualSVN-Server,現在版本是2.1.2
2、客戶端安裝TortoiseSVN,現在版本1.6.8,以及其LanguagePack,都可以下到。在安裝完客戶端後,就可以在文件夾右鍵的菜單裏面看到版本控制的信息了。對,就是這麼好用,它將windows的文件夾進行了重載,受版本管理的文件夾都會有相應的圖標,相應好認。
在安裝完語言包後,右鍵進行設置,把語言設置爲中文即可。
注意:在服務器端同時安裝客戶端是爲了配置及使用服務器方便一些。並不一定要裝。
3、進行服務器端的配置。
啓動服務器:可以選擇將其安裝爲系統服務,也可以建立一個批處理文件,將其拖到系統啓動下。
下面以批處理文件爲例:
cd H:\Program Files\VisualSVN Server\bin\
svnserve.exe -d -r G:\ServerData\Data\SVN\Repositories\svnrepos\
該路徑爲目前的版本庫位置。運行該批處理文件,彈出的命令窗口不要關閉。現在可以看到3690端口已經被監聽了,說明啓動成功了。
系統服務的安裝方法:
sc create svnservice binpath= "H:\Program Files\VisualSVN Server\bin\svnserve.exe --service -r G:\ServerData\Data\SVN\Repositories\" displayname= "SVNService" depend= Tcpip start= auto
但是不一定能成功。
精細的訪問權限設置
在版本控制中,權限配置是相當重要的,SVN服務器採用authz文件來進行權限配置。首先在某個文件夾下建立版本庫(右鍵中有哦~~~),然後對其下的conf文件夾內的一些文件進行配置。
文件:svnserve.conf,該文件對SVN進行總體配置,包括是否使用帳號密碼,使用使用authz權限控制方式,默認的訪問權限等等。
我的文件內容如下(我去除了被註釋掉的內容):
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz.public
文件:passwd,該文件中保存了用戶的帳號和密碼,看看就會寫了,不多說。
文件:authz,該文件用於配置精細的訪問權限。
這裏有兩種情況:
A:-r直接指定到版本庫(稱之爲單庫svnserve方式)
比如,有一個庫project1,位於D:\svn\project1
使用以下命令啓動svnserve
- svnserve -d -r D:\svn\project1
authz文件如果配置成下面這樣就是錯的,
- [groups]
- admin=user1
- dev=user2
- [project1:/]
- @admin=rw
- @doc=r
- [groups]
- admin=user1
- dev=user2
- [/]
- @admin=rw
- @doc=r
使用類似這樣的URL:svn://192.168.0.1/ 即可訪問project1
B:-r指定到版本庫的上級目錄(稱之爲多庫svnserve方式)
同樣,有一個庫project1,位於D:\svn\project1
如果使用以下命令啓動svnserve
- svnserve -d -r D:\svn
這時如果想限制指定庫的指定目錄,就應該指定具體的庫,像這樣
- [groups]
- admin=user1
- dev=user2
- [project1:/]
- @admin=rw
- @doc=r
使用類似這樣的URL:svn://192.168.0.1/project1 即可訪問project1
這樣的URL:svn://192.168.0.1/project2 即可訪問project2
2,對中文目錄進行權限控制時,沒有將權限文件authz改爲utf-8格式。
svn對於非英文文件名和目錄名使用utf-8格式編碼處理,要對中文目錄進行正確控制,
應該使用無BOM的utf-8格式,如何將默認的文件轉爲utf-8,
我使用的是UltraEdit的菜單"ASCII to UTF-8 (Unicode Editing)"。在UltraEdit的配置中,可以設置有無BOM