天天看点

SVN中文目录权限控制

2007-02-25 18:10:19

此文通过PC客户端发布(FAQ)SVN权限文件authz配置的常见问题及解答

原文见:http://www.iusesvn.com/bbs/thread-157-1-1.html

最近在我用Subversion论坛(http://www.iUseSVN.com/bbs)经常有人提到这样的问题:

为什么我的客户端没有写权限?

为什么我的权限没有起作用?

总结他们的配置,发现

都是用svnserve作为服务器,

都在svnserve.conf中使用了authz-db选项

原因可能如下:

1,配置authz时,没有注意svnserve启动参数-r所指定的目录。

这里有两种情况:

A:-r直接指定到版本库(称之为单库svnserve方式)

比如,有一个库project1,位于D:\svn\project1

使用以下命令启动svnserve

CODE:

svnserve -d -r D:\svn\project1

在这种情况下,一个svnserve只能为一个版本库工作

authz文件如果配置成下面这样就是错的,

CODE:

[groups]

admin=user1

dev=user2

[project1:/]

@admin=rw

@doc=r

应该配置成

CODE:

[groups]

admin=user1

dev=user2

[/]

@admin=rw

@doc=r

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

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

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

如果使用以下命令启动svnserve

CODE:

svnserve -d -r D:\svn

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

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

CODE:

[groups]

admin=user1

dev=user2

[project1:/]

@admin=rw

@doc=r

如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录

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

svn对于非英文文件名和目录名使用utf-8格式编码处理,要对中文目录进行正确控制,

应该使用utf-8格式,如何将默认的文件转为utf-8,

我使用的是UltraEdit的菜单"ASCII to UTF-8 (Unicode Editing)"。

更多参考文档:

(配置权限控制文件)http://www.iusesvn.com/bbs/thread-6-1-1.html

(中文目录权限控制)http://www.iusesvn.com/bbs/thread-41-1-1.html

继续阅读