有没有办法对Subversion存储库进行格式化以避免这样的消息:
svn: Expected format '3' of repository; found format '5'
当您从多台计算机访问存储库时,会发生这种情况,并且您无法在所有这些计算机上使用一致版本的Subversion。
更糟糕的是,在不同的服务器上有多个具有各种格式的存储库,而且我无法自由升级其中一些服务器。 ~~~
答案 0 :(得分:12)
如果您无法在所有计算机上使用相同版本的Subversion,则应设置服务器进程(svnserve或Apache)并仅通过服务器访问存储库。服务器可以在不同版本的Subversion之间进行调解;只有当您使用直接存储库访问时,才会遇到此问题。
如果服务器的版本低于当前的存储库格式(我不推荐),那么您需要使用较新的版本导出存储库并使用旧版本导入它。
答案 1 :(得分:5)
svnbook说this(关于文件:///访问vs设置服务器)
不被这个简单的想法所诱惑 让所有用户访问 存储库直接通过file:// URL。 即使存储库很容易 通过网络向所有人提供 分享,这是一个坏主意。它删除 任何层之间的保护 用户和存储库:用户可以 意外(或故意) 它破坏了存储库数据库 变得很难拿到存储库 离线检查或升级,以及 它可能会导致文件混乱 许可问题(见the section called “Supporting Multiple Repository Access Methods”)。请注意,这是 也是我们警告的原因之一 反对通过访问存储库 svn + ssh://来自安全的URL 从立场来看,它实际上是一样的 作为通过file://访问的本地用户, 它可能需要所有相同的 如果管理员没有问题 小心。
Subversion保证任何1.X客户端都可以与任何1.X服务器通信。通过使用服务器,您可以一次升级服务器,并且客户端可以独立于服务器。
答案 2 :(得分:3)
我怀疑您必须导出存储库并将其重新导入旧版本。虽然导出格式中可能存在一些格式不兼容 - 但由于它只是一个大文本文件,所以希望剥离它们并不太难。
答案 3 :(得分:2)
根据Subversion的书,没有办法做到这一点。您必须导出整个存储库,然后在旧版本启动并运行时继续重新导入它。
无论如何,我建议您在客户端计算机上相应地升级SVN工具,而不是在您的存储库中玩危险的游戏。
确定版本,在您准备升级到新版本之前不要触摸它。
答案 4 :(得分:2)
正如在这个帖子How to downgrade a subversion tree from v1.7 to v1.6?中提到的那样,http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py上有一个python脚本可以降级工作副本,但它只适用于1.6x版本。
答案 5 :(得分:0)
如果您降级到v1.4x,这是另一种可能对您有所帮助的方式: https://www.admon.org/scripts/downgrade-svn-from-1-6-to-1-4/