3

我遇到了 SVN 的奇怪行为。我在 Apache 2.2.9 上使用 mod_dav、mod_dav_svn 和 SVN 1.5.2 运行了 SVN 存储库。当我尝试签出(从远程 1.5.4 客户端或服务器本地 1.5.2 客户端 - 两个“默认”svn 二进制文件)时,我得到类似:

mx-mac:Test mx$ svn ci -m "" 添加 test.txt svn: Commit failed (详情如下): svn: XML data was not well-formed

我通过嗅探 HTTP 连接发现的是,对远程 SVN 存储库 (Apache) 的一个请求以“由对等方重置”结束,并且不返回响应(使用 HTTP Scoop 嗅探)。

至于Apache的配置,所有的模块都是加载的。为 repo 设置了适当的权限,并且 repo 是由 svnadmin create 创建的,然后被 chowned 给 apache 用户(无论如何,即使我有 chmod -R 777 repo 目录,它也不起作用)。

Apache 配置包含 DAV 和 SVNPath 指令以及身份验证。

经过几个小时的尝试,我非常绝望,所以如果有人遇到过这样的问题,请告诉我。非常感谢!

4

6 回答 6

3

最后,我发现在 .htaccess 文件中为与 SVN 相同的 VirtualHost 重新定义 ErrorDocument 会导致在某些情况下将无效数据发送到 SVN 客户端,并且由于某种原因在提交过程中被拦截。

于 2008-11-22T01:48:49.773 回答
1

虽然理论上解决这样的问题是有教育意义的,但生命太短了,我已经精通其他事情了,为此我得到报酬来成为专家,所以我对任何 svn 问题的后备解决方案是这个:离开工作副本,在其他地方创建一个新目录,从存储库中重新签出任何分支,然后通过从混乱的签出处复制来手动更新您知道已更改的文件。

至于apache,我敢打赌它不会有任何麻烦。提交失败几乎总是由于与存储库的连接以外的其他原因。(假设没有人在修补 apache 或 svn 服务器。)不能保证,但尝试新签出和手动复制文件可能会起作用,或者至少会显示新的诊断信息。

于 2008-11-22T02:05:30.097 回答
0

达人,你现在不完全正确。我已经尝试了所有可能的工作副本、新存储库等组合。我几乎什么都试过了。最后,我在 NEON 调试消息中发现了一条奇怪的消息,在主页上显示了我的 404 页面,我几乎忘记了。然后,我意识到 - 正如很久以前创建的那样 - 我从 404 页面(200 而不是 404)发送了不正确的 HTTP 状态代码,因此 NEON 认为它是正确的输出和处理,使其处于某种不正确的状态。

所以,现在是 apache 问题,由愚蠢的 Web 开发人员 - 我在 2003 年引起的...... :)

于 2008-11-22T11:41:44.303 回答
0

我发现这是由于没有使用正确的 URL 来检查内容造成的。当我输入结帐命令时,我正在使用 Web 服务器提供的 url,例如“svn co http://blah.com/stuff_in_here/contents ”,然后我使用该 url 直到找到我可以使用的真实 svn 位置在命令行中,例如http://blah.com/svn/contents

于 2009-08-06T02:13:29.797 回答
0

这也让我很困扰。我通过删除我的工作区并再次检查它来解决它。

于 2010-08-26T13:42:11.040 回答
0

我得到了同样的错误信息:

svn:提交失败(详情如下):svn:XML数据格式不正确

原因是:SVN-Repository 上的驱动器已满。更多的磁盘空间,问题就解决了。

于 2018-01-09T11:53:35.023 回答