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

來源:互聯網
上載者:User

準備工作

  首先先下載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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.