我正在尝试将 SVN 存储库映射到 Fisheye/Crucible 以与代码审查功能一起使用。我遇到了 Fisheye 运行的命令之一的问题,但问题的根源似乎源于 SVN 服务器。正在使用 VisualSVN Server 3.6.1,64 位。
svn diff --summarize -r 6427:6428 http://file2/svn/REPO/@6428
我在 SVN 服务器上本地测试了相同的命令,但大约 25 分钟后,文本流被中断
svn: E175009: The XML response contains invalid XML
svn: E130003: Malformed XML: no element found
我发现的这个错误的例子似乎表明在命令中输入的 URL 不正确,但这似乎不适用于我的情况,因为最初大约有 110MB 的数据下降。
在命令运行时监视事件查看器会产生 3 个错误,但不会导致命令停止执行。随后的重新运行每次都会导致相同的 3 个错误。
Provider encountered an error while streaming a REPORT response. [500, #0]
A failure occurred while driving the update report editor [500, #106]
Unknown error [500, #106]
SVN 对 repo 进行验证没有报告任何问题。
作为一种解决方法,我可以将 Fisheye 设置为在问题修订后开始索引,但这会导致在该修订之前最后修改的文件在审查中缺少差异数据,因此并不理想。
更新 1 有问题的修订似乎是围绕 repo 布局方式的重新设计,我读到这可能会在使用 3rd 方工具时引起问题。我还注意到在 1.9.5 之前的 SVN 中有一个错误,它允许在 xml 中无效的字符,所以我正在尝试一些版本降级,看看是否有帮助。
更新 2 这些似乎是由在执行上述重新设计 repo 布局时创建的特定分支引起的。更多研究表明我可以使用 svndumpfilter 删除不需要的项目。我没有找到任何关于如何删除分支的信息,只是特定的文件。我还尝试将 repo 导出和导入到新安装,但这并没有解决问题。
一般来说,SVN的管理很容易,但我不知道如何解决这个问题。任何建议将不胜感激。谢谢!
我可以通过 svn:// 协议配置存储库访问来避免这个错误。虽然 VisualSVN 不直接支持这一点,但所需的 svnserve.exe 已经存在,并且被配置为指向存储库副本的新服务。
这似乎不是一个安全的解决方案,但它消除了我遇到的硬块错误。