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

如何将较新的SVN存储库迁移到较旧的版本?,svn,dreamhost,migrate,Svn,Dreamhost,Migrate,不久前,我使用OrtoiseSVN创建了一个本地存储库。 现在我想将存储库迁移到我的帐户 我移动了文件,但DreamHost似乎使用的是旧版本的 当我发出命令时 svnadmin load 'repository dir' 它吐了回来 svnadmin:预期的FS格式为“2”; 找到格式“4” 解决方案?编辑:您的消息是因为您使用较新版本的服务器创建了目标存储库,然后尝试使用较旧版本的svnadmin加载转储。请阅读下面的正确步骤 我不理解svnadmin加载部分,您以前是否使用svnadm

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

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

当我发出命令时

svnadmin load 'repository dir'
它吐了回来

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


解决方案?

编辑:您的消息是因为您使用较新版本的服务器创建了目标存储库,然后尝试使用较旧版本的
svnadmin
加载转储。请阅读下面的正确步骤


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

因此,您应该在使用原始存储库的版本(最新的SVN版本)上执行以下操作:

svnadmin dump>dump\u文件
和在目标服务器上(最旧的SVN版本):

svnadmin创建
svnadmin加载<转储文件
如果您有一个大的存储库,您可能希望在转储中使用
--delta
选项,因为这些转储可能会变得相当大


如果这是您所做的,但失败了,您能否精确说明相应的版本并提供更多详细信息?

如果转储不起作用,您也可以尝试使用svnsync将内容迁移到新存储库: 创建DreamHost存储库后,创建一个简单的pre-revprop change挂钩,该挂钩仅退出0,以启用propchanges:

#!/bin/sh
exit 0
在此之后,您可以开始:

svnsync init [DREAMHOST_URL] [OWN_REPO_URL]

svnsync sync [DREAMHOST_URL]

然后,所有的修订都将流到您的新存储库。

根据SVN文档,自1.0版以来,不应该存在向后兼容性问题,尽管我从未尝试过。但OP描述中的“4”很奇怪,从他们给出的命令来看,不清楚到底做了什么。。。我希望有某种回复(参考转储:)转储格式会随着时间的推移而改变。因此,SVN1.1客户端无法理解SVN1.6客户端的转储格式。这正是他报告的问题。实际上,我几乎可以肯定,他报告的是svnadmin“旧版本”未能将转储加载到由svnadmin“新版本”创建的存储库中。我以前应该看到的。我已经从1.6->1.4对转储文件进行了快速迁移测试,它的工作原理非常好:-)
#!/bin/sh
exit 0
svnsync init [DREAMHOST_URL] [OWN_REPO_URL]

svnsync sync [DREAMHOST_URL]