最近在我用Subversion論壇(
http://www.iUseSVN.com/bbs)經(jīng)常有人提到這樣的問題:
為什么
我的客戶端沒有寫權(quán)限?
為什么我的權(quán)限沒有起作用?
總結(jié)他們的配置,
發(fā)現(xiàn)都是用svnserve作為服務(wù)器,
都在svnserve.conf中使用了authz-db選項(xiàng)
原因可能如下:
1,配置authz時(shí),沒有注意svnserve啟動(dòng)參數(shù)-r所指定的目錄。這里有兩種情況:
A:-r直接指定到版本庫(稱之為單庫svnserve方式)比如,有一個(gè)庫project1,位于D:\svn\project1
使用以下命令啟動(dòng)svnserve
svnserve -d -r D:\svn\project1
在這種情況下,一個(gè)svnserve只能為一個(gè)版本庫
工作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:/]表示庫project1的根目錄,而按上面的啟動(dòng)參數(shù),是沒有庫的概念的。
B:-r指定到版本庫的上級(jí)目錄(稱之為多庫svnserve方式)同樣,有一個(gè)庫project1,位于D:\svn\project1
如果使用以下命令啟動(dòng)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目錄
2,對(duì)中文目錄進(jìn)行權(quán)限控制時(shí),沒有將權(quán)限文件authz改為utf-8格式。svn對(duì)于非英文文件名和目錄名使用utf-8格式編碼
處理,要對(duì)中文目錄進(jìn)行正確控制,
應(yīng)該使用utf-8格式,如何將默認(rèn)的文件轉(zhuǎn)為utf-8,
我使用的是UltraEdit的
菜單"ASCII to UTF-8 (Unicode Editing)"。
更多參考文檔:
(配置權(quán)限控制文件)
http://www.iusesvn.com/bbs/thread-6-1-1.html(中文目錄權(quán)限控制)
http://www.iusesvn.com/bbs/thread-41-1-1.html