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