2

我的开发项目使用 VisualSVN Server v 1.1 来管理我的 Tortoise SVN 存储库。托管它们的 Windows 服务器变得不可用,我被迫使用 ISP 的恢复应用程序将源数据拉到另一台服务器。我采取了以下步骤。

  1. 将文件夹存储库和 svnrepos 从旧服务器复制到新服务器。

  2. 我在新服务器上安装了 Visual SVN。安装时,我告诉应用程序有关存储库文件夹的信息,希望它能神奇地弄清楚发生了什么(关于魔法的有趣事情,因为我们都知道它不存在)。

  3. 我更新了子域的 dns 以指向新服务器的 ip。

  4. 现在,当我打开 visual svn 时,我确实看到了折叠、用户和组(这里有点神奇)。但不幸的是,所有存储库在打开时都显示错误“预期 FS 格式 '2';找到格式 '3'”

所以问题是,如何在不破坏文件和文件夹的情况下修复混乱?

4

1 回答 1

1

听起来存储库的格式与此版本的服务器所期望的不同。Subversion 基本上对存储库有两种不同的内部表示形式 - BDB(现在已弃用)和 FSFS(一段时间以来一直是现在存储库的默认值)。我怀疑旧服务器上的版本使用了 BDB,而您现在使用的服务器无法应对。

我建议最好的做法是首先尝试尽可能接近地复制旧服务器。您提到 VisualSVN 服务器 v1.1 - 这是您最初拥有的还是现在使用的?尝试安装您在旧服务器上运行的相同版本的 VisualSVN。如果这无法读取存储库格式,那么您可能需要安装一个额外的插件。如果原始服务器是不同的操作系统,则使用该操作系统设置机器(如果它是 linux 服务器,则尝试使用 linux 安装磁盘创建虚拟机)。

一旦你有一个可以识别数据格式的服务器实例,做一个svnadmin 转储,它将以可移植格式创建 SVN 数据的备份。然后,您可以将服务器更新到最新版本的 SVN 或转移到将成为实际服务器的机器(例如,如果您必须使用 VM 来获取数据)。然后,您可以使用svnadmin load导入备份。

请注意,如果您设置了任何挂钩(例如 precommit 挂钩),那么这些挂钩不会保存在 中svnadmin dump,因此您需要手动复制这些挂钩。配置文件和权限数据也是如此。

于 2013-02-17T22:28:02.220 回答