【发布时间】:2009-11-04 19:34:05
【问题描述】:
不久前,我使用 tortoiseSVN 创建了一个本地存储库。 现在我想将存储库迁移到我的DreamHost 帐户。
我将文件移了过去,但 DreamHost 似乎使用的是旧版本的 SVN。
当我发出命令时
svnadmin load 'repository dir'
它吐回来
svnadmin: 预期的 FS 格式 '2'; 找到格式“4”
解决方案?
【问题讨论】:
不久前,我使用 tortoiseSVN 创建了一个本地存储库。 现在我想将存储库迁移到我的DreamHost 帐户。
我将文件移了过去,但 DreamHost 似乎使用的是旧版本的 SVN。
当我发出命令时
svnadmin load 'repository dir'
它吐回来
svnadmin: 预期的 FS 格式 '2'; 找到格式“4”
解决方案?
【问题讨论】:
编辑:您的消息是由于您使用 较新 版本的服务器创建了目标存储库,然后尝试使用 加载转储>旧版本的svnadmin。阅读下面的正确步骤。
我不明白svnadmin load 部分,您之前是否使用svnadmin dump 创建了转储文件?这是跨版本移植存储库的最佳选择,因为通常格式不应更改。
所以你应该这样做,在使用原始存储库的版本上(最新的 SVN 版本):
svnadmin dump <repos_path> > dump_file
在目标服务器上(最旧的 SVN 版本):
svnadmin create <newrepos_path>
svnadmin load <newrepos_path> < dump_file
如果您的存储库很大,您可能希望在转储中使用--deltas 选项,因为这些转储可能会变得非常大。
如果你这样做了但失败了,你能否详细说明各自的版本并提供更多细节?
【讨论】:
如果转储不起作用,您还可以尝试 svnsync 将内容迁移到新存储库: 创建 DreamHost 存储库后,创建一个简单的 pre-revprop-change 钩子,该钩子刚刚退出 0,以启用 propchanges:
#!/bin/sh
exit 0
之后你就可以开始了:
svnsync init [DREAMHOST_URL] [OWN_REPO_URL]
svnsync sync [DREAMHOST_URL]
然后所有修订都将流向您的新存储库..
【讨论】: