我遇到了SVN的奇怪行为。 我使用mod_dav,mod_dav_svn和SVN 1.5.2在Apache 2.2.9上运行SVN存储库。 当我尝试检出(从远程1.5.4客户端或服务器本地1.5.2客户端 - 两个“默认”svn二进制文件),我得到类似的东西:
mx-mac:测试mx $ svn ci -m“” 添加test.txt svn:提交失败(详情如下): svn:XML数据格式不正确
我通过嗅探HTTP连接发现,对远程SVN存储库(Apache)的一个请求以“按对等方重置”结束而不返回响应(使用HTTP Scoop来嗅探)。
对于Apache的配置,所有模块都被加载。为repo设置了正确的权限,repo由svnadmin create创建,然后对apache用户进行了限制(无论如何,即使我有chmod -R 777 repo目录它也没有用。)
Apache配置包含DAV和SVNPath指令以及身份验证。
经过几个小时的努力,我非常绝望,所以如果有人遇到过这样的问题,请告诉我。非常感谢!答案 0 :(得分:3)
最后,我发现在.htaccess文件中重新定义了与SVN相同的VirtualHost的ErrorDocument,导致无效数据在某些情况下被发送到SVN客户端,并且出于某种原因拦截了提交过程。
答案 1 :(得分:1)
虽然从理论上讲,弄清楚这样的问题会很有教育意义,生命太短暂而且我已经是其他事情的专家,为此我需要付钱才能成为专家,所以我对所有svn的后备解决方案问题是:在工作副本之外,在其他地方创建一个新目录,对存储库中的任何分支进行新的检查,然后通过从混乱的结帐中复制来手动更新您知道已更改的文件。
至于阿帕奇,我敢打赌它没有任何麻烦。失败的提交几乎总是由于与存储库的连接之外的其他东西。 (假设没有人正在修补apache或svn服务器。)不能保证,但尝试新文件检查和手动复制文件可能只是工作,或至少揭示新的诊断信息。
答案 2 :(得分:0)
所以,现在它是apache问题,由愚蠢的Web开发人员引起 - 我在2003年......:)
答案 3 :(得分:0)
我发现这是因为没有使用正确的网址来检查内容。 当我输入结帐命令时,我正在使用网络服务器提供的网址,例如“svn co http://blah.com/stuff_in_here/contents” 然后我玩了url,直到找到了我可以在命令行中使用的真正的svn位置,例如 “http://blah.com/的 SVN 强> /内容”
答案 4 :(得分:0)
这也困扰着我。我通过删除我的工作区并再次检查它来解决它。
答案 5 :(得分:0)
我收到了同样的错误消息:
svn:提交失败(详情如下):svn:XML数据格式不正确
原因是:SVN-Repository上的驱动器已满。 更多的磁盘空间和问题得到了解决。