【IT168 技术文档】摘要:Subversion版本控制使用中的常见问题及解决方法。
------------------------------------------------------------------分 割 线-----------------------------------------------------------------
常见问题及解决方法
1、路径或权限不足时将出现错误信息提示:
http://localhost (路径不对)
Error * PROPFIND request failed on '/' PROPFIND of '/': 200 OK (http://localhost)
http://localhost/svn (权限不足)
Error * PROPFIND request failed on '/svn' PROPFIND of '/svn': 403 Forbidden (http://localhost)
http://localhost/svn/repos (正常显示)
http://localhost/repos (权限不允许)
Error * PROPFIND request failed on '/repos' PROPFIND of '/repos': 405 Method Not Allowed (http://localhost)
解决办法是填写正确的路径或给予适当的权限。
2、不启动E:\subversion\bin\svnserve.exe ,但启动了ApacheSVN ,访问(tortoiseSVN –> Repo – browser)或提交(SVN Commit)情形如下:
现象:svn://localhost/svn/repos 不能访问或提交,提示:Error * Can't connect to host 'localhost': 由于目标机器积极拒绝,无法连接。 但 file:///e:/svn/repos 和 http://localhost/svn/repos 可以访问或提交。
原因:svn:// 是独立服务器 svnserver 自己的协议。file:/// 是本地访问,即服务器端和客户端在一个机器上。
解决方法:使用 http 方式访问。
3、设置SVNListParentPath后浏览出现Forbidden
配置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
[repos2:/]
@admin = rw
@test = r
* =