我正在尝试将 SVN 存储库映射到 Fisheye/Crucible 中,以便使用代码审查功能。我在使用 Fisheye 运行的某个命令时遇到了问题,但问题的根源似乎在于 SVN 服务器。正在使用 64 位 VisualSVN Server 3.6.1。
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 有问题的修订似乎与存储库布局的重新设计有关,我了解到这在使用第三方工具时可能会导致问题。我还注意到 SVN 1.9.5 之前的版本中有一个错误,允许 xml 中无效的字符,因此我正在尝试降级一些版本,看看是否有帮助。
更新 2 这些似乎是由执行上述 repo 布局重新设计时创建的特定分支引起的。进一步的研究表明我可以使用 svndumpfilter 删除不需要的项目。我没有找到有关如何删除分支的任何信息,只有特定文件。我还尝试将 repo 导出并导入到新安装中,但这并没有解决问题。
总体来说,SVN 的管理相当简单,但我不知道如何解决这个问题。任何建议都将不胜感激。谢谢!
答案1
我能够通过 svn:// 协议配置存储库访问来避免此错误。虽然 VisualSVN 不直接支持此功能,但所需的 svnserve.exe 存在并配置为指向存储库副本的新服务。
sc create svncustom binpath= "\"C:\Program Files (x86)\VisualSVN Server\bin\svnserve.exe\" --service -r F:\RepositoriesCopy" displayname= "Subversion Workaround Server" depend= Tcpip start= auto
这似乎不是一个安全的解决方案,但它消除了我遇到的硬阻塞错误。