配置svn服务器为“多库”后(“单库”、“多库”的概念见http://bbs.iusesvn.com/thread-157-1-1.html),我们想让浏览器显示父目录列表,这样,访问者可以直观的看到在版本库根目录下有哪些版本库。配置时加入“SVNListParentPath on”,比如我的配置文件:
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”,回车。却出现:
You don't have permission to access /repos on this server.
查看访问控制策略文件“accesspolicy.conf”,噢,原来没有给根目录加权限。添加权限,整个配置看起来如下:
admin = indian
test = test
[/]
* = r
[repos1:/]
* = r
@admin = rw
@admin = rw
@test = r
* =
再次输入“http://svn服务器IP/repos”,回车,还是出现禁止访问的信息。问题出在“<Location /repos>”,把它改成“<Location /repos/>”,即在后面加个斜线“/”,问题得到解决。
参考资料:
《为何父文件夹不能看到版本库?》:我用svn中文论坛文章
《SVNListParentPath》:邮件列表
印第安
2007年12月27日2:12:40
转载于:https://blog.51cto.com/indian/1057157