首先,我尝试将分支与主干重新整合(使用 TortoiseSVN),但收到错误消息“查询合并信息需要 FSFS 文件系统模式的版本 3;文件系统 E:/MyRepository/ 仅使用版本 2”。
难道真的无法在早期版本的 Subversion 中重新整合分支吗?或者还有其他方法可以做到这一点?
无论如何,我如何将文件系统从版本 2 升级到版本 3?
答案1
您没有指定服务器正在运行的 Subversion 版本。但根据您在问题中提供的消息,它可能是 1.4.x 或更早的版本。我不记得是否提供了从 1.4.x 到 1.5.x 的升级命令,但将存储库从版本 2 升级到版本的可靠方法是转储和加载。但这并不重要,无论如何您都希望安装 1.6.x 以使用最新版本。因此,以下是您需要执行的步骤:
- 如果尚未升级到 Subversion 1.6.x
- 使用 svnadmin dump 转储现有存储库
- 创建一个新的 repo,命名为 _new
- 使用 svnadmin load 将旧的转储加载到新的存储库中
- 将 uuid 文件从旧存储库复制到新存储库
- 将旧存储库重命名为 _old
- 将新存储库重命名为
另请参阅 Subversion 常见问题解答http://subversion.apache.org/faq.html#dumpload举一个具体的例子。
这应该能帮你搞定,uuid 文件也能防止你的客户端崩溃。不过,请执行 svn update 以确保万无一失。
答案2
升级 Subversion 存储库不需要转储/加载。使用 svnadmin upgrade 命令:
svnadmin upgrade <path-to-repos>
注意:svnadmin upgrade“仅执行完成此操作所需的最少工作量,同时仍保持存储库的完整性。虽然转储和后续加载保证了最优化的存储库状态,但 svnadmin upgrade 却不能。” - 另请参阅svnadmin 升级文档
答案3
伊万 (Ivan) 有一个很好的建议,很有效,我试过了,非常简单。
svnadmin upgrade <path-to-repos>
在 Ivans 的例子中我遗漏了一点,但对其他人可能有用,那就是:
前任。
<path-to-repos> = C:\repos\theRepo
(ie. NOT C:\repos\theRepo\db)
不要将 svnadmin 指向 db 目录,而是指向包含 db 目录的目录。