svnserve权限文件authz配置的常见问题及解答

关键字: subversion;authz 1,配置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 

2,对中文目录进行权限控制时,没有将权限文件authz改为utf-8格式。 

svn对于非英文文件名和目录名使用utf-8格式编码处理,要对中文目录进行正确控制, 
应该使用无BOM的utf-8格式,如何将默认的文件转为utf-8, 
我使用的是UltraEdit的菜单"ASCII to UTF-8 (Unicode Editing)"。在UltraEdit的配置中,可以设置有无BOM 

更多参考文档: 
(配置权限控制文件)http://www.iusesvn.com/bbs/thread-6-1-1.html 
(中文目录权限控制)http://www.iusesvn.com/bbs/thread-41-1-1.html 

(Apache的单库多库问题)http://www.iusesvn.com/bbs/thread-158-1-1.html
上一篇:软件缺陷模型


下一篇:第一位阿里云优秀ACE会长,开发到运营,我是这么抉择