Windows下的SVN服務器安裝及配置

準備工作

  首先先下載Windows版本的SVN服務器(各位都會使用搜索引擎所以就不提供下載 地址了),這裏我以svn-win32-1.4.3的ZIP解壓縮版爲例,將其解壓縮到目標目錄,例如我是解壓到D盤下的Subversion目錄,把 D:/Subversion/bin加到系統環境變量,如果你的解壓位置與我不同,那麼請按照你的實際路徑設置環境變量。

第一步:創建SVN數據庫

   打開Windows命令提示符,執行命令svnadmin create F:/SVN,svnadmin create是創建SVN數據庫的命令,F:/SVN是你的SVN數據庫位置,這裏我只是舉個例子,你可以自己決定SVN數據庫位置,執行完以上命令後就 會在F盤下多出一個SVN目錄,裏面有若干目錄和文件,conf目錄是用來存放權限配置的,後面會詳細說明,dav目錄用來提供給apache和 mod_dav_svn存儲內部數據,db目錄是所有版本控制的數據文件,hooks目錄用來放置hook腳本文件,locks目錄存放 Subversion文件庫鎖定數據,用來追蹤存取文件庫的客戶端,format是一個文本文件,裏面只放了一個整數,表示當前文件庫配置的版本號,還有 個readme.txt不用說也知道是幹什麼的了。

第二步:啓動SVN服務器

   繼續在Windows命令提示符裏執行命令svnserve -d -r F:/SVN,參數-d是將SVN服務做爲後臺服務,參數-r是指定SVN服務的根目錄位置,F:/SVN自然就是SVN根目錄了,到這裏爲止SVN服務 器就已經啓動了,可以用SVN客戶端測試一下。

第三步:將SVN服務註冊爲系統服務

  你可能會問這樣豈不是每次啓動SVN服務器都要輸入一次命令?怎樣才能讓SVN服務器在開機的時候自動啓動呢?答案就是將SVN服務註冊到Windows系統服務,在Windows命令提示符裏執行命令
sc create SVN binpath= "/"d:/subversion/bin/svnserve.exe/" --service -r F:/SVN" displayname= "SVN Service" depend= Tcpip start= auto,這個命令是不是有點長?其實很容易理解,sc是Windows自帶的系統服務註冊工具,微軟支持中心 提 供了詳細的說明,這裏我就不再複述了,參數binpath= "/"d:/subversion/bin/svnserve.exe/" --service -r F:/SVN"和我們前面手動啓動SVN服務器的命令很像吧?只是把-d改成了--service,這不難理解,因爲現在是服務嘛。好了,現在已經大功告 成了,重起一下試試吧。
PS:如果想從系統服務裏刪除剛纔註冊的SVN服務可以使用sc delete SVN命令。

第四步:設置權限

   各位都是做IT的,爲研發中的項目設置合理的權限有多重要就不需要我說了,就拿開發遊戲來說吧,程序部門需要有源代碼目錄的所有權限以及美術資源目錄和 策劃案目錄的獲取權限,美術部門需要有美術資源目錄的所有權限以及策劃案目錄的獲取權限,而策劃部門則需要有策劃案目錄的所有權限及美術資源目錄的獲取權 限。接下去就來看看SVN是如何設置權限的,還記得第一步創建SVN數據庫時提到的conf目錄吧,conf目錄裏有3個文件,這3個都是文本文件,用計 事本打開它們就行了,我們先看svnserve.conf文件,anon-access項指定了未經驗證的用戶所具有的操作權限,它有3個有效值,分別是 read,write,none,read爲讀權限,write爲寫權限,none爲沒有任何權限,password-db項用來指定存放用戶名和密碼的 文件,authz-db項用來指定存放用戶權限的文件,realm項用來指定驗證範圍,這項一般情況下用不到,以上4項默認都是被註釋掉的.#號爲註釋 符,要起用它們只需要把註釋符去掉即可。passwd文件是默認存放用戶名和密碼的文件,例如我設置一個Sol用戶,密碼爲111111,只需在 [users]下添加Sol=111111即可,authz文件是默認指定存放用戶權限的文件,[groups]代表分組,這裏我們設置個 developer組,將前面創建的Sol用戶分到developer組裏,同樣只需在[groups]下寫上developer=Sol即可,[/]代 表根目錄,如果我們要設置developer組有完全的訪問權限就在下面加上@developer=rw,前面加@符代表組,除此之外我們允許所有人都有 讀取權限還要在下面加上*=r,SVN允許對每個目錄設置權限,設置方法和根目錄差不多,如果到這裏你還不是很明白那麼請看下面的例子。

一個權限配置的例子

   我們以遊戲項目開發爲例,項目名就叫Project1吧,怎麼創建SVN數據庫上面已經說過了,我們在SVN的根目錄下創建一個名爲Project1的 本地數據庫,先配置conf目錄下的svnserve.conf文件,我們不允許任何與研發無關的人員訪問此項目,因此我們禁止匿名訪問併爲每個研發人員 創建個人帳號,權限文件和帳戶信息文件用默認同目錄下的authz文件和passwd文件就行了。

svnserve.conf文件配置如下:

[general]
anon-access = none
password-db = passwd
authz-db = authz

   接下去配置passwd文件,爲每個研發人員設置個人帳戶,假設項目負責人是Sol,程序部門有Tom、Mark,美術部門有John、Alina、 Candice、Ellen,策劃部門有Terry、Jane,這裏我們爲了方便將密碼全部設置爲000000,現在是例子沒關係,實際應用的時候密碼就 不能這麼隨便設置了。

passwd文件配置如下:

[users]
Sol = 000000
Tom = 000000
Mark = 000000
John = 000000
Alina = 000000
Candice = 000000
Ellen = 000000
Terry = 000000
Jane = 000000

   帳戶都創建好了,現在爲他們分配不同的權限,先設置4個組.分別是manager 、developer、artist、designer,將Sol分配到manager組裏,將Tom、Mark分配到developer組,將 John、Alina、Candice、Ellen分配到artist組,將Terry、Jane分配到designer組,等會我們會在項目中創建 designs、sources、resources、reports這4個目錄,然後在reports目錄裏爲每個人創建一個以自己帳戶命名的目錄用來 放每個人的工作報告,manager組擁有所有目錄的讀寫權限,developer組擁有sources目錄的讀寫權限以及designs和 resources目錄的讀取權限,artist組擁有resources目錄的讀寫權限以及designs目錄的讀取權限,designer組擁有 designs目錄的讀寫權限以及resources目錄的讀取權限,每個帳戶都擁有reports目錄下以自己帳戶命名的目錄的讀寫權限,也就是說每個 人的工作報告只有自己和項目負責人能看到。

authz文件配置如下:

[groups]
manager = Sol
developer = Tom,Mark
artist = John,Alina,Candice,Ellen
designer = Terry,Jane

[Project1:/]
@manager = rw
* = r

[Project1:/designs]
@manager = rw
@developer = r
@artist = r
@designer = rw
* =  

[Project1:/sources]
@manager = rw
@developer = rw
* =

[Project1:/resources]
@manager = rw
@developer = r
@artist = rw
@designer = r
* =

[Project1:/reports/Sol]
Sol = rw
* =

[Project1:/reports/Tom]
@manager = rw
Tom = rw
* =

[Project1:/reports/Mark]
@manager = rw
Mark = rw
* =

[Project1:/reports/John]
@manager = rw
John = rw
* =

[Project1:/reports/Alina]
@manager = rw
Alina = rw
* =

[Project1:/reports/Candice]
@manager = rw
Candice = rw
* =

[Project1:/reports/Ellen]
@manager = rw
Ellen = rw
* =

[Project1:/reports/Terry]
@manager = rw
Terry = rw
* =

[Project1:/reports/Jane]
@manager = rw
Jane = rw
* =

   目錄的權限都設置完了,但是目錄我們還沒有創建,現在只有項目負責人才有權限在項目根目錄下創建目錄,所以我們用Sol的帳戶來創建designs、 reports、resources、sources這4個目錄,然後再到reports目錄裏爲每個人創建以各自帳戶命名的工作報告目錄,好了,到這裏 就全部搞定了,收工。

 

 

轉自:http://grindelwald.iteye.com/blog/249797

發佈了50 篇原創文章 · 獲贊 6 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章