SVN服務(wù)器有2種運行方式:獨立服務(wù)器和借助apache運行。
svnserve和apache相比是輕量級的,也比較簡單,svnserve包含在subversion里面,所以只要安裝了subversion就相當(dāng)于安裝了一個小型的svn服務(wù)器。它使用自己的一套協(xié)議通信。例如訪問apache時使用 前綴,而svnserve使用 svn:// 前綴.
這里介紹的是通過獨立服務(wù)器方式運行,優(yōu)點是簡單小巧。如果是支持較大規(guī)模的開發(fā),還是推薦使用apache服務(wù)器方式;這里使用svnserver安裝;
1.首先為SVN單獨創(chuàng)建一個用戶,這樣可以使用操作系統(tǒng)的安全特性;
2.將svnadmin這個用戶加入到sudu組;
3.安裝:
sudo apt-get install subversion
4.創(chuàng)建測試目錄:
mkdir /home/svnadmin/test
5.創(chuàng)建版本庫:
svnadmin create /home/svnadmin/test
4. 導(dǎo)入項目
例如現(xiàn)在有個工程,名稱為examPro,
位置/alidata/www/examPro , 將這個工程導(dǎo)入到本地倉庫中。
svn import /alidata/www/examPro file:///home/svnadmin/examPro -m "import examPro"
在上一個例子里,將會拷貝目錄examPro到版本庫中;
這樣這個工程就在納入服務(wù)器的本地倉庫管理。
為了使用SVN的同步更新機制,我們需要在svn服務(wù)器環(huán)境上簽出一份最新工程拷貝(為表述方便,這里稱為A目錄)。
$ svn checkout file:///home/svnadmin/examPro
在這個拷貝里,我們一般不做修改,而是用來同步更新;當(dāng)開發(fā)機器上有任何修改,更新到SVN服務(wù)器上時,能同步更新到A目錄;這樣,就能保證A目錄下的代碼是整個工程的最新代碼,而使用A目錄搭建的WEB測試環(huán)境,就是最新的WEB測試環(huán)境;
5.啟動SVN服務(wù)
$ svnserve -d -r /home/svnadmin/examPro
描述說明:
-d 表示svnserver以“守護(hù)”進(jìn)程模式運行
-r 指定文件系統(tǒng)的根位置(版本庫的根目錄),這樣客戶端不用輸入全路徑,就可以訪問版本庫。
6.停止svn服務(wù):
killall svnserve //停止svnserve服務(wù)
SVN權(quán)限管理
1.SVN版本庫目錄說明
db:存放具體數(shù)據(jù);
hooks:鉤子程序存放地,比如我們要實現(xiàn)同步更新的操作,在這里實現(xiàn);
conf:配置文件存放地
下面具體說說conf目錄;
conf目錄下有三個文件:
svnserve.conf、authz、以及passwd;
2.SVN服務(wù)配置文件:svnserve.conf
查看該文件,首先是匿名用戶的權(quán)限配置:
anon-access = none
auth-access = write
表示:對于匿名用戶,無訪問權(quán)限;
對于授權(quán)用戶,有寫權(quán)限;
接下來的一段用于配置使用哪種授權(quán)登錄方式;
可選的有password-db ,就是用戶名和密碼都是明文存放在同級目錄下的passwd文件中;優(yōu)點是高效配置簡單,缺點是安全性弱,明文總不是那么讓人感覺可靠;
另一種是authz-db,這種方式的用戶密碼使用了sasl加密,安全上有保證;
選擇這種方式的設(shè)置,將password-db 注釋掉:
# password-db = passwd
authz-db = authz
#指定授權(quán)所屬的域,C++的同志可將其理解為名字空間;
realm = examPro
接下來是[sasl]段,用于標(biāo)識是否進(jìn)行SASL加密處理;
use-sasl = true
min-encryption = 128
max-encryption = 256
變量 min-encryption 和 max-encryption 控制服務(wù)器所需要的加密強度。
3. 詳細(xì)權(quán)限配置文件authz:
這個就是授權(quán)數(shù)據(jù)庫,用于配置指定目錄對用戶的訪問權(quán)限;
首先是指定一個用戶組,按組來分配權(quán)限總是方便的,即使目前你的團隊一個組只有一個人。在新加入成員的時候,你就能體會到按組分配權(quán)限的便利性了;
[groups]
g_fronter=cuicc,gdii
g_vip=coo
g_doc=yhh
[examPro:/]
@g_vip=rw
@g_fronter=r
@g_doc=r
[examPro:/protected/modules]
@g_vip=rw
@g_fronter=
*=
[examPro:/protected]
@g_doc=
對于以上代碼的配置的詳細(xì)說明,可以參考本文的參考文章[1]SVN權(quán)限配置,里面介紹的比較詳細(xì),這里就不多說,有疑問的請留言或mail;
SVN使用SASL加密
1.配置svnserve.conf,注釋掉password-db = passwd
并啟用sqsl:use-sasl = true
2.新建一個svn.conf文件,一般放在/usr/lib/sasl2或者/etc/sasl2,內(nèi)容為:
pwcheck_method: auxprop
auxprop_plugin: sasldb
sasldb_path: /home/svnadmin/config/sasldb
mech_list: DIGEST-MD5
其中sasldb_path 指定你打算將sasl加密的數(shù)據(jù)庫放置的位置;