天天看点

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 

应该配置成 

[/] 

因为[project1:/]表示库project1的根目录,而按上面的启动参数,是没有库的概念的。 

使用类似这样的url:svn://192.168.0.1/ 即可访问project1 

b:-r指定到版本库的上级目录(称之为多库svnserve方式) 

同样,有一个库project1,位于d:\svn\project1 

如果使用以下命令启动svnserve 

svnserve -d -r d:\svn 

这种情况,一个svnserve可以为多个版本库工作, 

这时如果想限制指定库的指定目录,就应该指定具体的库,像这样 

如果此时你还用[/],则表示所有库的根目录,同理,[/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

继续阅读