SVN-WINDOWS服務(wù)器架設(shè)和管理
Posted on 2008-06-08 12:40 acooly 閱讀(5262) 評論(0) 編輯 收藏 所屬分類: 服務(wù)器安裝配置
SVN-WINDOWS
服務(wù)器架設(shè)和管理
1. ?? 環(huán)境和軟件準(zhǔn)備
操作系統(tǒng): windowsXP sp2
Window-Subvsersion : http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
Windows 常用客戶端 TortoiseSVN : http://tortoisesvn.net/downloads
請下載 subversion 服務(wù)器軟件和客戶端,并默認(rèn)安裝(可以重新啟動操作系統(tǒng),以更新圖標(biāo)顯示)。
2. ?? 配置管理
2.1. 創(chuàng)建倉庫 (svnadmin)
在硬盤上創(chuàng)建個空目錄,作為 SVN 的倉庫目錄。如: E:\subversion\repository 。下面使用兩種方式創(chuàng)建倉庫的初時文件結(jié)構(gòu)和存儲方式。命令方式和 TortoiseSVN 客戶端方式,后面所有文檔都采用兩種方式說明,其功能完全相同。請根據(jù)實(shí)際情況選擇使用。
命令方式(
DOS
下):
# 默認(rèn)方式,采用 FSFS 方式存儲數(shù)據(jù),這是推薦方式,管理和遷移相對 bdb 方式簡單
svnadmin create E:\subversion\repository
或
svnadmin create –fs-type bdb E:\subversion\repository
TortoiseSVN
客戶端
注意在最新版本的
SVN1.4
,采用本方式有兼容性問題,該客戶端現(xiàn)在好想只支持
1.3
版本的
SVN
創(chuàng)建倉庫
1.???????? 使用 window exporer 或我的電腦,定位到 E:\subversion\repository ,并確保本目錄為空。
2.???????? 在本目錄下,右鍵菜單中選擇“ TortoiseSVN ”- > “ Create repository here… ”
3.???????? 在彈出的窗口中選擇數(shù)據(jù)存在文件系統(tǒng)方式,使用默認(rèn)選取 (FSFS) ,點(diǎn)擊確定。
4.???????? 檢查本目錄下是否有生產(chǎn)的系統(tǒng)文件和文件夾,如果有,成功!
2.2. 配置服務(wù)
進(jìn)入倉庫目錄下的 conf 文件夾。也就是 E:\subversion\repository\conf
里面有 3 個默認(rèn)的配置文件: authz , passwd , svnserve.conf
svnserve.conf 控制 svnserve 的啟動配置選項(xiàng),可以配置認(rèn)證和授權(quán)方式,典型的配置是設(shè)置由 authz 控制授權(quán), passwd 控制認(rèn)證的方式來控制訪問權(quán)限。也可以使用匿名方式,但不推薦。
使用 authz 和 passwd 的典型配置:
請?zhí)貏e注意:以下三個配置文件的配置,每行有效配置前不能有空格,不然配置會失敗。
服務(wù)配置文件
svnserve.conf
……
### 匿名方式不允許訪問
anon-access = none
……
### Uncomment the line below to use the default password file.
### 表示訪問倉庫的認(rèn)證有文件 passwd 提供的賬戶確定
password-db = passwd
……
### Uncomment the line below to use the default authorization file.
### 表示認(rèn)證后的賬戶訪問權(quán)限由文件 authz 定義
authz-db = authz
### This option specifies the authentication realm of the repository.
……
認(rèn)證配置文件
passwd
passwd 文件實(shí)際提供訪問本倉庫的賬戶管理,文件格式就是 ini 方式的格式
[users]
harry = harryssecret
sally = sallyssecret
user=usersecret
這表示本倉庫配置了二個用戶及:其中一個用戶 harry, 他的訪問密碼是 harryssecret 。訪問密碼可以使用明文,也可以使用 htpasswd.exe ( apache 服務(wù)器提供的工具方法,安裝 apache 服務(wù)器后,在其 bin 目錄中有該程序文件)進(jìn)行加密處理。
授權(quán)配置文件
authz
該文件負(fù)責(zé)認(rèn)證后的用戶的權(quán)限控制,配置稍微復(fù)雜,但其實(shí)也就是個 ini 配置文件而已。
典型配置:
# groups 段提供配置組的功能 , 但組成員必須是 passwd 文件中定義的用戶才有效??梢詫M
# 進(jìn)行權(quán)限控制,所有組成員具有組對應(yīng)的訪問權(quán)限。
[groups]
# 表示定義了一個管理組叫 admin_group, 包括 harry 和 sally , admin_group 前千萬不能有空格
admin_group= harry, sally
# 下面就是定義具體倉庫下目錄的訪問權(quán)限
# 一般對管理員來說都具有整個倉庫的讀寫權(quán)限,一般人員對整個敞開具有讀取權(quán)限,下面
# 就是這樣的配置 ,[/] 表示整個倉庫的根,組的引用使用 @ ,對應(yīng)的權(quán)限可以是 r,w,rw 或空
[/]
@admin_group = rw
* = r
以上的配置完成后,我嗎就可以啟動服務(wù)器了,下面說明服務(wù)器的啟動。
注意,以上 authz 和 passwd 文件在管理中因?yàn)榫唧w項(xiàng)目的加入和人員的變動會經(jīng)常的修改,這也是 SVN 管理主要的工作
2.3. 啟動服務(wù) (svnserve)
Svn 服務(wù)器一般有三種方式, svnserve , apache 和 SSH 。其中常用的有 svnserve 和 apache 方式。本文只以 svnserve 方式講解??偟膩碚f svnserve 是最高效的方式,一般應(yīng)用于內(nèi)部開發(fā)網(wǎng)中使用。 Apache 方式因?yàn)榭梢院芎玫牟渴鹪?/span> internet 上,所以公網(wǎng)使用最方便,但配置稍微相對復(fù)雜點(diǎn)點(diǎn),呵呵~~。三種方式具體的優(yōu)缺點(diǎn),請參考本文后面的參考文檔。
命令方式(
DOS
下):
svnserve –d –r E:\subversion\repository
-d 參數(shù)是以獨(dú)立服務(wù)的方式啟動
-r 是制訂要加載的倉庫的物理路徑
Windows
系統(tǒng)服務(wù)
在 subversion1.4 后的版本,提供了安裝為服務(wù)的支持
可以參考本文安裝: .
SC create svn1.4 binPath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service --root \"E:\subversion\repository\"" depend= Tcpip start= auto
1.???????? 紅色部分: SVN 的安裝目錄
2.???????? 藍(lán)色部分:倉庫根目錄
3.???????? 每個參數(shù)的格式是:參數(shù)名稱 = 值。參數(shù)名稱和 = 間沒有空格, = 后必須有空格, SC 的變態(tài)特性,完全的 BUG.. 注意就可以了
4.???????? 本命令方式只能用于 svn1.4 以上版本
5.???????? 刪除服務(wù): sc delete svn1.4
2.4. 添加項(xiàng)目 (import)
上面的安裝配置工作完成后,啟動服務(wù),現(xiàn)在進(jìn)入使用的主題,首先一步是把需要進(jìn)行版本管控的項(xiàng)目加入到倉庫中。在作這個工作前,需要先接受下, SVN 推薦的項(xiàng)目路徑結(jié)構(gòu)。一般推薦是使用一個 trunk 保存項(xiàng)目主干最新版本, breaches 保存以后的多個分支, tags 一般保存發(fā)布或階段性發(fā)布的標(biāo)簽版本。如下
Project1/trunk
Project1/breaches
Project1/tags
下面我嗎使用該目錄結(jié)構(gòu),加入一個測試的項(xiàng)目 project1 來演示添加項(xiàng)目的過程。
在任意目錄建立文件夾 test ,然后在 test 下建立上面推薦的項(xiàng)目目錄結(jié)構(gòu)。如下
test/project1/trunk
test/project1/breaches
test/project1/tags
命令方式:
DOS 下定位到 test 的上級目錄
svn import test svn://localhost -m "init project1" --username harr y --password=harryssecret
新增 ?????????? test\project1
新增 ?????????? test\project1\trunk
新增 ?????????? test\project1\readme.txt
新增 ?????????? test\project1\breaches
新增 ?????????? test\project1\tags
提交后的修訂版為 1 。
TortoiseSVN
客戶端
1.?????? 右鍵點(diǎn)擊 test 目錄,選擇“ TortoiseSVN ”- > “ Import ”
2.?????? 在彈出的操作界面中 URL repository 中輸入服務(wù)器地址 svn://localhost
3.?????? 在彈出的操作界面中 Import message 下面的文本域輸入 init project1
4.?????? 點(diǎn)擊 OK
5.?????? 如果第一次使用,會彈出輸入賬戶的界面,輸入對應(yīng)的用戶賬戶,選擇保存,下次使用就不用在輸入賬戶認(rèn)證信息了。
查看是否添加成功:
1.???????? 使用 window exporer 或我的電腦,定位到 E:\subversion\repository ,并確保本目錄為空。
2.???????? 在本目錄下,右鍵菜單中選擇“ TortoiseSVN ”- > “ Repo-browser ”
3.???????? 在彈出的輸入框中輸入 SVN 服務(wù)器地址 svn://localhost
4.???????? 在 Repository Browser 窗口中,你可以點(diǎn)擊樹形結(jié)構(gòu)的倉庫目錄,查看是否存在你剛才添加的 project1
5.???????? 如果你的用戶有足夠的權(quán)限,你可以在本界面的樹目錄上使用右鍵管理你的倉庫和項(xiàng)目。
2.5. 工作副本 (checkout)
工程加入到倉庫后,下面就可以進(jìn)入實(shí)際的研發(fā)使用了,首先是要建立個本地的工作副本,使用 checkout 。
1.?????? 在任意開發(fā)機(jī)上建立工作目錄。如: D:\workspace\project1
2.?????? 進(jìn)入具體項(xiàng)目的工作目錄,右鍵菜單中選擇“ SVN Checkout ”
3.?????? 在 checkout 窗口中:
URL of Repository 是你具體的項(xiàng)目的主干倉庫訪問地址
如: svn://localhost/project1/trunk
Checkout directory 是你本地副本的地址
如: D:\workspace\project1
其它的使用默認(rèn)選項(xiàng),如需要了解具體含義,請查看參考文檔
4.?????? 點(diǎn)擊 OK
2.6. 常用開發(fā)操作
以下主要都是在工作副本的開發(fā)中的常用操作。
2.6.1. 更新和同步
其它開發(fā)人員或在其它工作副本上提交到倉庫的最新版本文件,需要更新到你自己的工作副本的操作。使用更新使你的工作副本于服務(wù)器倉庫代碼同步。如果你更新的文件中本地副本和服務(wù)器倉庫中的文件都是在同一版本上,本地副本作了修改文件操作后, SVN 沒有辦法更新,因?yàn)樗恢朗欠裨摲艞壉镜氐男薷?,它默認(rèn)會操作合并的方式,但往往很多時候有些文件是不能簡單的自動合并的,所有最好的辦法是以倉庫的版本為準(zhǔn)進(jìn)行更新,這就是同步操作。
下面主要說明使用客戶端工具 TortoiseSVN 的操作方式,其它客戶端工具和命令方式類似。
1.???????? 在需要更新或同步文件上或文件夾內(nèi)右鍵點(diǎn)擊,選擇 SVN update 命令
2.???????? 如果需要同步某個文件或文件夾,需要先刪除本地版本,然后在使用 SVN update
2.6.2. 添加和提交
。。。
3. ???? 參考文檔
1.???????? Svn 安裝后的官方文檔
2.???????? SVN 中文官方網(wǎng)站: http://www.subversion.org.cn
3.???????? 中文文檔: http://www.subversion.org.cn/svnbook/