将 repo 文件复制到其他服务器后,出现“无法打开请求的 SVN 文件系统”

将 repo 文件复制到其他服务器后,出现“无法打开请求的 SVN 文件系统”

我的旧 Subversion 服务器(Fedora 10,带有 mod_dav_svn 的 Apache)崩溃了,我唯一拥有的就是文件系统的备份。

我已经以完全相同的方式配置了新服务器(现在是 CentOS 5)并从备份中复制了文件,但是出现此错误:“无法打开请求的 SVN 文件系统”(新存储库正在运行......)

我可以尝试什么来让存储库再次运行?

答案1

不幸的是,CentOS 5 的 subversion 相当老旧,为 1.4.2,而 Fedora 10 的 subversion 较新,为 1.5.4。两者之间的 fsfs 格式一定已发生变化(在存储库目录中查找版本文件),而 CentOS 上的旧 subversion 无法读取在 1.5.4 上生成的较新版本。

您有两个选择:

  1. 安装 1.5.4 或更高版本的临时副本(或者例如设置 Fedora 10 VM 以在那里使用该副本),使用svnadmin dump1.5.4 备份存储库,然后使用svnadmin load1.4.2 工具将其加载到新存储库中。这可能会很慢,而且您还必须复制所有钩子等。您还将失去对 svn:mergeinfo 属性的服务器端支持。

  2. 在您的机器上安装更新版本的 subversion。您可以自行构建 - 获取 Fedora SRPM 是一个不错的开始,尽管通常需要进行一些修复 - 或者您可以设置系统以从RPMForge,无论是完整安装还是只针对 subversion 及其依赖项 - 并安装其最新的 1.6.x 版本。您将获得 1.6 的所有改进并保留 svn:mergeinfo 属性支持,但您将不再拥有严格兼容 RHEL-5 的系统(如果您对此感到困扰)。未来注意事项:如下面讨论的那样,您必须/sbin/service httpd restart在更新已安装的 subversion 后重新启动 apache,例如。

祝你好运!

相关内容