SubVersion服務器Windows安裝指南

在辦公室的臺式機上安裝了svn服務器

1.    環境和軟件準備

操作系統: windows vista sp1
Window-Subvsersion : http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 
Windows 常用客戶端 TortoiseSVN : http://tortoisesvn.net/downloads

下載 subversion 服務器軟件和客戶端,並默認安裝(可以重新啓動操作系統,以更新圖標顯示)。 
我下載到了Setup-Subversion-1.5.5.msi, 安裝路徑 C:/Program Files/Subversion/
常用客戶端 TortoiseSVN原來就安裝了

2.    配置管理 
2.1. 創建倉庫 (svnadmin) 
在硬盤上創建個空目錄,作爲 SVN 的倉庫目錄。如: E:/svnroot/repository 。
下面使用兩種方式創建倉庫的初時文件結構和存儲方式。命令方式和 TortoiseSVN 客戶端方式,後面所有文檔都採用兩種方式說明,其功能完全相同。請根據實際情況選擇使用。 
 

命令方式( DOS 下):

# 默認方式,採用 FSFS 方式存儲數據,這是推薦方式,管理和遷移相對 bdb 方式簡單 
svnadmin create E:/svnroot/repository

svnadmin create –fs-type bdb E:/svnroot/repository
上爲bdb的文件系統方式, 一般默認是native的FS即 NTFS
 

TortoiseSVN 客戶端

版本的 SVN1.5.5

1. 使用 window exporer 或我的電腦,定位到 E:/svnroot/repository ,並確保本目錄爲空。 
2. 在本目錄下,右鍵菜單中選擇“ TortoiseSVN ”- > “ Create repository here… ” 
3. 檢查本目錄下是否有生產的系統文件和文件夾,如果有,成功!


2.2. 配置服務 
進入倉庫目錄下的 conf 文件夾。也就是 E:/svnroot/repository/conf 
裏面有 3 個默認的配置文件: authz , passwd , svnserve.conf 
svnserve.conf 控制 svnserve 的啓動配置選項,可以配置認證和授權方式,典型的配置是設置由 authz 控制授權, passwd 控制認證的方式來控制訪問權限。也可以使用匿名方式,但不推薦。 
使用 authz 和 passwd 的典型配置: 
請特別注意:以下三個配置文件的配置,每行有效配置前不能有空格,不然配置會失敗。 
服務配置文件 svnserve.conf 
…… 
### 匿名方式不允許訪問 
anon-access = none 
…… 
### Uncomment the line below to use the default password file. 
### 表示訪問倉庫的認證有文件 passwd 提供的賬戶確定 
password-db = passwd 
…… 
### Uncomment the line below to use the default authorization file. 
### 表示認證後的賬戶訪問權限由文件 authz 定義 
authz-db = authz 
### This option specifies the authentication realm of the repository. 
…… 
#realm = My First Repository
 

認證配置文件 passwd 
passwd 文件實際提供訪問本倉庫的賬戶管理,文件格式就是 ini 方式的格式 
[users]
# harry = harryssecret
# sally = sallyssecret
testuser1=testuser1

testuser2=testuser2 


這表示本倉庫配置了二個用戶及:其中一個用戶 testuser1, 他的訪問密碼是 testuser1。
訪問密碼可以使用明文,也可以使用 htpasswd.exe ( apache 服務器提供的工具方法,安裝 apache 服務器後,在其 bin 目錄中有該程序文件)進行加密處理。


授權配置文件 authz

該文件負責認證後的用戶的權限控制,配置稍微複雜,但其實也就是個 ini 配置文件而已。 
典型配置: 
# groups 段提供配置組的功能 , 但組成員必須是 passwd 文件中定義的用戶纔有效。可以對組 
# 進行權限控制,所有組成員具有組對應的訪問權限。 
[groups] 
# 表示定義了一個管理組叫 admin_group, 包括 harry 和 sally , admin_group 前千萬不能有空格 
admin_group=testuser1
dev_group=testuser2

# 下面就是定義具體倉庫下目錄的訪問權限 
# 一般對管理員來說都具有整個倉庫的讀寫權限,一般人員對整個敞開具有讀取權限,下面 
# 就是這樣的配置 ,[/] 表示整個倉庫的根,組的引用使用 @ ,對應的權限可以是 r,w,rw 或空 
[/]
@admin_group = rw
@dev_group = rw
* = r

[/test_project]
@admin_group = rw
@dev_group = rw
* = r

[repository:/]
@admin_group = rw
@dev_group = rw
* = r

以上的配置完成後,就可以啓動服務器了,下面說明服務器的啓動。 
注意,以上 authz 和 passwd 文件在管理中因爲具體項目的加入和人員的變動會經常的修改,這也是 SVN 管理主要的工作

2.3. 啓動服務 (svnserve) 
Svn 服務器一般有三種方式, svnserve , apache 和 SSH 。
其中常用的有 svnserve 和 apache 方式。本文只以 svnserve 方式講解。總的來說 svnserve 是最高效的方式,一般應用於內部開發網中使用。 
Apache 方式因爲可以很好的部署在 internet 上,所以公網使用最方便,但配置稍微相對複雜點點,呵呵~~。三種方式具體的優缺點,請參考本文後面的參考文檔。

命令方式( DOS 下): 
svnserve –d –r E:/svnroot/repository
svnserve –d –r "E:/svnroot/repository"

-d 參數是以獨立服務的方式啓動 
-r 是制訂要加載的倉庫的物理路徑

但這個方法我用就不行, 報 使用 "svnserve --help" 得到用法

Windows 系統服務 
添加爲系統服務

方法1(推薦):
在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server, Windows vista)本身包含了一個安裝服務的工具,叫做"Service Control",也就是sc.exe。
1.安裝爲服務:
例:我的Subversion安裝在"C:/Program Files/Subversion",版本庫在"E:/svnroot/repository",而我希望對應的Subversion服務名爲svnservice,安裝這個svn服務的命令就可以這樣寫:

SC create svnservice binPath= "/"C:/Program Files/Subversion/bin/svnserve.exe/" --service --root /"E:/svnroot/repository/"" displayname= "SVNService" depend= Tcpip

請注意,因爲便於察看,上面的命令分爲多行,但在實際執行時應該在一行裏。另外,在以前啓動svnserve時會使用"-d"選項,也就是守護進程模式,在這裏不能使用,會導致服務無法啓動。同樣,"-i"和"-t"選項也不能使用。
另外還有兩點需要小心處理。首先,如果路徑中包括空格,一定要用“/”處理“"”號,例如上面的例子中如果svnserve.exe在“C:/Program Files/Subversion/bin/svnserve.exe”中,則命令應該寫爲“binpath= "/"C:/Program Files/Subversion/bin/svnserve.exe/"”(“”中的內容):
SC create svnservice binPath= "/"C:/Program Files/Subversion/bin/svnserve.exe/" --service --root /"E:/svnroot/repository/"" displayname= "SVNService" depend= Tcpip
其次,sc對選項的格式還有要求,例如“depend= Tcpip”不能寫爲“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而後面必須有空格。

2.啓動服務
在命令行窗口執行完這個命令之後,服務還沒有啓動,你可以繼續運行"net start svnservice"啓動這個服務。

3.停止服務
然後使用"net stop svnservice"停止服務。

4.刪除服務
如果服務安裝的有問題,你可能需要刪除服務。要刪除前面添加的服務,只需要運行"sc delete svnservice","svnservice"就是我們創建服務時使用的名字。

5.配置服務是自動啓動
默認情況下安裝的服務不會隨Windows的啓動而啓動,爲了使svn服務能夠隨Windows啓動而啓動,需要修改一下"sc create"命令(首先要刪除),增加"start= auto"選項:

SC create svnservice binPath= "/"C:/Program Files/Subversion/bin/svnserve.exe/" --service --root /"E:/svnroot/repository/"" displayname= "SVNService" depend= Tcpip start= auto
SC create svnservice binPath= "/"C:/Program Files/Subversion/bin/svnserve.exe/" --service -r /"E:/svnroot/repository/"" displayname= "SVNService" depend= Tcpip start= auto

當然你也可以使用圖形化的工具修改服務的屬性,你可以在“開始->運行...”中執行"services.msc",然後在界面中修改。

在vista下要以管理員的權限運行CMD, 否則會出現權限問題.

在 subversion1.4 後的版本,提供了安裝爲服務的支持

可以參考本文安裝: .

注意以下方法沒有實際做過

------

導入項目

在E:/projects/test_project下建 temp目錄 結構如下

temp
|--test_project
    |--branches
    |--tags
    |--trunk

在temp目錄上點 TortoiseSVN -> Import
輸入 svn://192.168.3.213
和用戶名和密碼後ld項目導入成功


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章