最近在我用Subversion论坛(http://www.iUseSVN.com/bbs)经常有人提到这样的问题:为什么我的客户端没有写权限?为什么我的权限没有起作用?总结他们的配置,发现都是用svnserve作为服务器,都在svnserve.conf中使用了authz-db选项原因可能如下:1,配置authz时,没有注意svnserve启动参数-r所指定的目录。这里有两种情况:A:-r直接指定到版本库(称之为单库svnserve方式)比如,有一个库project1,位于D:/svn/project1使用以下命令启动svnserve
svnserve -d -r D:/svn/project1 复制代码 在这种情况下,一个svnserve只能为一个版本库工作 authz 文件如果配置成下面这样就是错的, [groups]admin=user1dev=user2[project1:/]@admin=rw@doc=r 复制代码 应该配置成 [groups]admin=user1dev=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=user1dev=user2[project1:/]@admin=rw@doc=r 复制代码如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录使用类似这样的URL:svn://192.168.0.1/project1 即可访问project1这样的URL:svn://192.168.0.1/project2 即可访问project22,对中文目录进行权限控制时,没有将权限文件authz改为utf-8格式。svn对于非英文文件名和目录名使用utf-8格式编码处理,要对中文目录进行正确控制,应该使用无BOM的utf-8格式,如何将默认的文件转为utf-8,我使用的是UltraEdit的菜单"ASCII to UTF-8 (Unicode Editing)"。在UltraEdit的配置中,可以设置有无BOM更多参考文档:(配置权限控制文件)http://bbs.iusesvn.com/thread-6-1-1.html(中文目录权限控制)http://bbs.iusesvn.com/thread-41-1-1.html(Apache的单库多库问题)http://bbs.iusesvn.com/thread-158-1-1.html
网址:http://www.cnblogs.com/taobataoma/archive/2010/06/13/1757703.html