SVN工作正常然后“svn:OPTIONS 200 OK”错误和“不存在”

时间:2011-07-09 23:55:25

标签: svn

SVN在几分钟前工作得很好 - 我仍然可以在http://svn.example.com/myrepo浏览我的存储库但是当我尝试执行任何操作时,包括svn up,我得到:

svn: OPTIONS of 'http://svn.example.com/myrepo': 200 OK (http://svn.example.com)

当我尝试svn cleanup http://svn.example.com/myrepo只是为了看看会发生什么时,我得到了:

svn: 'http://svn.example.com/myrepo' does not exist

再次 - 在浏览器中键入它,我仍然可以正常浏览存储库。怎么回事?

6 个答案:

答案 0 :(得分:10)

好的,事实证明这个问题的解决方案非常基础 - 而且非常复杂。

简单的回答:

主机名svn.mywebsite.com不存在(至少,不是我的开发服务器)。

对于其他任何遇到此问题的人,我强烈建议您根据无论出于何种原因无法找到SVN服务器的假设来解决问题。

-

并发症:

现在对我来说,事实证明它有点复杂,因为正如我之前提到的那样,它正在工作 - 然后就停止了。

如果您感兴趣,原因是我们的SVN服务器与我们的主应用程序(位于http://www.mywebsite.com)一起存在于Web服务器上,该应用程序恰好在另一台服务器上进行了镜像,mywebsite.com的DNS记录正在两个服务器之间的AB模式上分发。由于我的开发服务器上的SVN客户端找不到svn.mywebsite.com,因此它只是寻找mywebsite.com。一旦连接到存在SVN服务器虚拟主机记录的“A”服务器,Apache就会接管并提供适合svn.mywebsite.com的内容。

但是在某些时候,我的DNS缓存已刷新,并且没有可用的应用程序逻辑将用户安静地发送回“A”服务器,我的开发服务器开始将mywebsite.com解析为“B”服务器 - - 甚至没有安装SVN。

显然,当SVN客户端开始说“呃,哎,没有这样的服务器”时。 (谁知道那些OPTIONS等等200什么意思?)

为什么我是白痴

这是不可避免的ID10T错误发挥作用的地方。我可以在Firefox中一直浏览到“http://svn.mywebsite.com/myrepo”的原因是因为我在PC上手动创建了一个指向“A”服务器IP地址的主机条目。

如果我早点想起,我本可以节省很多时间 - 还有一些珍贵的布洛芬片剂。 :)

答案 1 :(得分:8)

此处存在类似问题,原因和解决方案不同。

简单的答案

降级Subversion客户端。

更复杂的答案

以前,我一直在使用1.6.11(特别是1.6.11-SlikSvn-tag-1.6.11@935062-X64)并且工作正常。升级到1.6.17(1.6.17-SlikSvn-tag-1.6.17@1130898-X64),然后开始收到OPTIONS of ... 200 OK错误。降级再次修复它。由于(显然)我仍然可以在我的浏览器中浏览存储库,以及我认为使用自己的SVN客户端的IntelliJ,这一切都变得更加令人困惑。

为什么我是个白痴

由于我在两个SVN存储库中工作,而另一个版本的客户端工作正常,我在升级几天后才注意到问题,所以我没有立即找出原因。如果我早点意识到这一点,我本可以节省很多时间 - 虽然我没有达到止痛药的作用!

< / Brian Lacy的答案的无耻抄袭>

答案 2 :(得分:4)

将SVN服务器升级到1.7后出现此问题

我通过将以下内容添加到我的apache location指令来修复此问题:

  SVNAdvertiseV2Protocol Off

答案 3 :(得分:3)

如果您的服务器使用svn端口,但您在网址上指定了http协议,则此“svn:OPTIONS of”错误也会显示。

也就是说,当我尝试时,我会收到错误:

svn checkout http://genericsite.com/someproject/trunk someproject

但我应该做的是:

svn checkout svn://genericsite.com/someproject/trunk someproject

答案 4 :(得分:1)

我遇到了同样的问题,因为我试图添加第二个SVN Repo。在阅读这篇文章后,我意识到,我必须在我的SVN配置文件(在我的情况下:/etc/apache2/mods-enabled/dav_svn.conf)中添加另一个 Location 设置,其中包含不同的路径。现在它在重新启动Apache后工作。

答案 5 :(得分:0)

为什么不再为一个荒谬的模糊错误消息提供一个解决方案?就我而言,SVN仓库由root用户创建,因此权限错误。

chown -R apache:apache /var/www/svn/foo

而且,既然我正在运行SELinux,我也做了很好的测量:

chcon -R system_u:object_r:httpd_sys_content_t:s0 /var/www/svn/foo 

ETA:

此问题的一个容易出现的症状是在您的Apache日志中。注意,没有为响应OPTIONS请求而发送正文:

"OPTIONS /rancid HTTP/1.1" 200 - "-" "SVN/1.6.11 (r934486) neon/0.29.3"

更改后:

"OPTIONS /rancid HTTP/1.1" 200 97 "-" "SVN/1.6.11 (r934486) neon/0.29.3"