最近在我用Subversion論壇(
http://www.iUseSVN.com/bbs)經(jīng)常有人提到這樣的問題:
為什么
我的客戶端沒有寫權(quán)限?
為什么我的權(quán)限沒有起作用?
總結(jié)他們的配置,
發(fā)現(xiàn)都是用svnserve作為服務器,
都在svnserve.conf中使用了authz-db選項
原因可能如下:
1,配置authz時,沒有注意svnserve啟動參數(shù)-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的根目錄,而按上面的啟動參數(shù),是沒有庫的概念的。
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目錄
2,對中文目錄進行權(quán)限控制時,沒有將權(quán)限文件authz改為utf-8格式。svn對于非英文文件名和目錄名使用utf-8格式編碼
處理,要對中文目錄進行正確控制,
應該使用utf-8格式,如何將默認的文件轉(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