天涼好個秋.

记 SVN checkout 提示 The XML response contains invalid XML 的解决办法

3004 阅 0 评 问题&解决方案

解决问题花了4~5个小时,吐槽下公司的网络,作为外企打不开 Google? 好吧政策问题忍了,有防火墙大部分网页都打不开,Bing 搜索结果一整页一个链接也打不开? 最后还要用自己的流量。下个工作一定先问:您公司网络能打开 Google 不,不能用就拜拜吧您呐。

背景

备份文件 A.dump 需要恢复,但无论用使用命令 svnadmin load 还是使用 VisualSVN Server GUI 的 import,最后在客户端 checkout 都会提示 The XML response contains invalid XML。

解决过程

  1. 为了排除 VisualSVN Server 的版本问题,尝试使用客户端的 SVN 新建 repository 然后导入,发现一切正常,为方便叙述将此 repository 定为 B repo。
  2. 尝试将 B repo 备份为 dump 文件然后导入 VisualSVN Server 中,问题依旧。
  3. 尝试将 B repo 做为 exist repo 直接恢复到 VisualSVN Server 中,问题依旧。
  4. 尝试将 B repo 的文件直接复制到 VisualSVN Server 的库目录下,问题依旧。
  • 上述尝试未果,但是发现提示错误是在 checkout 的中途,所以猜测可能是某个文件导致的异常,接下来验证猜想,尝试定位出错的文件。最后发现( source code 那么多,鬼知道我经历了什么)单独 checkout C.h 时会提示 The XML response contains invalid XML 错误。
  • 既然恢复到 B repo 的情况下可以 checkout ,而且文件本身无问题,那是否说明问题出现在 VisualSVN Server 的 repo 和 B repo 的实现有差异呢?或者说在上一次 commit 时 C.h 由于一些未知的原因 commit 失败(异常),而两种不同实现的方式上对于 C.h 的问题一个敏感、一个兼容从而引发了以上的现象呢?
验证猜想

A. 用 B repo checkout C.h
B. 将 C.h 文件头部添加空行然后 commit
C. 用前面叙述的方法 2 、3、4将 B repo 恢复到 VisualSVN Server 上
D. 从 VisualSVN Server checkout C.h ,无问题

至此问题解决。

作为兼职 Confidential A server 的管理员+运维,莫名感觉自己作用大大的、不可替代,然后看看工资条,别理我让我哭一会。
过程中省略了实际过程中一些无用的环节。在用手机查找相关问题时,居然有提到重置 tcp/ip 链接可以好用那么一小会,当时我那心情.....

Reference

Subversion client errors caused by inappropriate repository URL
The XML response contains invalid XML
svn checkout 提示 The XML response contains invalid XML
The XML response contains invalid XML
svnsync: E130003: The XML response contains invalid XML
Re: The XML response contains invalid XML

EOF