如何将较新的SVN存储库迁移到旧版本?

时间:2009-11-04 19:34:05

标签: svn dreamhost migrate

我使用tortoiseSVN创建了一个本地存储库。 现在,我想将存储库迁移到我的DreamHost帐户。

我移动了文件,但似乎DreamHost使用的是旧版SVN

当我发出命令

svnadmin load 'repository dir'

它吐了回来

  

svnadmin:预期的FS格式为'2';   找到格式'4'

解?

2 个答案:

答案 0 :(得分:5)

编辑:您的消息是由于您使用较新版本的服务器创建了目标存储库,然后尝试使用 {<1}}的较旧版本。请阅读下面的正确程序。


我不理解svnadmin部分,您之前是否使用svnadmin load创建了转储文件?这是跨版本移植存储库的最佳选择,因为通常格式不应该更改。

所以你应该在使用原始存储库(最新的SVN版本)的版本上执行:

svnadmin dump

并在目标服务器上(最旧的SVN版本):

svnadmin dump <repos_path> > dump_file

如果您有一个大型存储库,您可能希望在转储中使用svnadmin create <newrepos_path> svnadmin load <newrepos_path> < dump_file 选项,因为这些转储可能会变得非常大。

如果这就是您所做的并且失败了,您能否确定相应的版本并提供更多细节?

答案 1 :(得分:2)

如果转储无效,您还可以尝试 svnsync 将内容迁移到新的存储库: 创建DreamHost存储库后,创建一个简单的 pre-revprop-change 挂钩,它只退出0,以启用propchanges:

#!/bin/sh
exit 0

在此之后你可以开始:

svnsync init [DREAMHOST_URL] [OWN_REPO_URL]

svnsync sync [DREAMHOST_URL]

然后所有修订都将流向您的新存储库..