配置svn服务器为“多库”后(“单库”、“多库”的概念见http://bbs.iusesvn.com/thread-157-1-1.html),我们想让浏览器显示父目录列表,这样,访问者可以直观的看到在版本库根目录下有哪些版本库。配置时加入“SVNListParentPath on”,比如我的配置文件:

<Location /repos>
  DAV svn
  SVNListParentPath on
  #SVNPath e:/svn/repos1
  SVNParentPath e:/svn

  # 访问控制策略
  AuthzSVNAccessFile E:/usr/Apache2.2/bin/accesspolicy.conf

  # 首先采取匿名,如有必要采取认证
  Satisfy Any
  Require valid-user

  # 授权类型
  AuthType Basic
  # 认证时的提示信息,出现在对话框中
  AuthName "UserFile Auth"
  # 用户文件,存储帐号
  AuthUserFile E:/usr/Apache2.2/bin/passwd.conf
 </Location>

这时,如果我们在浏览器中输入“http://svn服务器IP/repos/repos1”(假设存在“repos1”版本库),那么我们可以自己看到“repos”版本库的列表。但是如果我们想查看版本库的根目录,看看有哪些版本库,输入“http://svn服务器IP/repos”,回车。却出现:

Forbidden
You don't have permission to access /repos on this server.

查看访问控制策略文件“accesspolicy.conf”,噢,原来没有给根目录加权限。添加权限,整个配置看起来如下:

[groups]
admin = indian
test = test

[/]
* = r

[repos1:/]
* = r
@admin = rw

[repos2:/]
@admin = rw
@test = r
* =

再次输入“http://svn服务器IP/repos”,回车,还是出现禁止访问的信息。问题出在“<Location /repos>”,把它改成“<Location /repos/>”,即在后面加个斜线“/”,问题得到解决。

 

参考资料:

为何父文件夹不能看到版本库?》:我用svn中文论坛文章

SVNListParentPath》:邮件列表

 

 

          印第安

      2007年12月27日2:12:40