如何在托管它的Windows服务器不再可用时移动Tortoise SVN存储库

时间:2013-02-17 17:01:57

标签: svn tortoisesvn visualsvn visualsvn-server

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

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

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

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

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

  5. 所以问题是,如何在不中断文件和文件夹的情况下解决问题?

1 个答案:

答案 0 :(得分:1)

听起来format of the repository与此版本的服务器所期望的不同。 Subversion基本上有两个不同的内部表示形式 - BDB(现已弃用)和FSFS(现在暂时是现在存储库的默认值)。我怀疑旧服务器上的版本使用了BDB,而你现在使用的服务器无法应对。

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

获得可识别数据格式的服务器实例后,请执行svnadmin dump,以便携式格式创建SVN数据的备份。然后,您可以将服务器更新到最新版本的SVN,或者转移到将成为实际服务器的计算机(例如,如果必须使用VM来获取数据)。然后,您可以使用svnadmin load导入备份。

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