1:創(chuàng)建倉(cāng)庫(kù)
svnadmin create /home/svn/reins(reins為我的代碼倉(cāng)庫(kù))
同時(shí)修改權(quán)限 chown -R svn:svn /home/svn/reins
2: 修改配置文件,svn的配置文件在/home/svn/reins/conf/下,三個(gè)配置文件分別為:passwd authz svnserve.conf
下面分別記述三個(gè)配置文件:
(1). passwd:(添加項(xiàng)目開(kāi)發(fā)中的組和用戶,看著本來(lái)的例子寫(xiě)就可以了)
[users]
p1_admin1 = p1_admin1
p1_d1 = p1_d1
(2).authz (這個(gè)文件中配置每個(gè)組或用戶的讀寫(xiě)權(quán)限,一定要小心,看著原來(lái)的例子寫(xiě),一不小心就給你來(lái)個(gè)授權(quán)失敗,尤其是那個(gè)路徑[reins:/],我就在這里栽倒的!)
配置authz時(shí),注意svnserve啟動(dòng)參數(shù)-r所指定的目錄。
這里有兩種情況:
A:-r直接指定到版本庫(kù)(稱之為單庫(kù)svnserve方式)
比如,有一個(gè)庫(kù)project1,位于D:\svn\project1
使用以下命令啟動(dòng)svnserve
svnserve -d -r D:\svn\project1
在這種情況下,一個(gè)svnserve只能為一個(gè)版本庫(kù)工作.authz文件如果配置成下面這樣就是錯(cuò)的,
[groups]
admin=user1
dev=user2
[project1:/]
@admin=rw
@doc=r
應(yīng)該配置成
[groups]
admin=user1
dev=user2
[/]
@admin=rw
@doc=r
因?yàn)閇project1:/]表示庫(kù)project1的根目錄,而按上面的啟動(dòng)參數(shù),是沒(méi)有庫(kù)的概念的。
使用類似這樣的URL:svn://192.168.0.1/ 即可訪問(wèn)project1
B:-r指定到版本庫(kù)的上級(jí)目錄(稱之為多庫(kù)svnserve方式)
同樣,有一個(gè)庫(kù)project1,位于D:\svn\project1
如果使用以下命令啟動(dòng)svnserve
svnserve -d -r D:\svn
這種情況,一個(gè)svnserve可以為多個(gè)版本庫(kù)工作,這時(shí)如果想限制指定庫(kù)的指定目錄,就應(yīng)該指定具體的庫(kù),像這樣
[groups]
admin=user1
dev=user2
[project1:/]
@admin=rw
@doc=r
如果此時(shí)你還用[/],則表示所有庫(kù)的根目錄,同理,[/src]表示所有庫(kù)的根目錄下的src目錄,使用類似這樣的URL:svn://192.168.0.1/project1 即可訪問(wèn)project1
這樣的URL:svn://192.168.0.1/project2 即可訪問(wèn)project2
(3).svnserver.conf(注意沒(méi)一行去掉#號(hào)后要頂格寫(xiě),聽(tīng)別人說(shuō)否則會(huì)報(bào)錯(cuò),我沒(méi)有試過(guò))
#去掉#[general]前面的#號(hào)
[general]
#匿名訪問(wèn)的權(quán)限,可以是read,write,none,默認(rèn)為read
anon-access = none
#認(rèn)證用戶的權(quán)限,可以是read,write,none,默認(rèn)為write
auth-access = write
#密碼數(shù)據(jù)庫(kù)的路徑,去掉前面的#
password-db = passwd
#認(rèn)證用戶的權(quán)限定義文件
authz-db = authz
3:啟動(dòng)svnserver服務(wù)
svnserver -d -r /home/svn/
如果提示已經(jīng)有一個(gè)svnserver進(jìn)程,可以用命令killall svnserver 來(lái)關(guān)閉該進(jìn)程。
4.現(xiàn)在就可以在客戶端用TortoiseSVN來(lái)checkout了
svn://172.31.12.38/reins