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