如何降级Subversion存储库的格式?

时间:2008-09-23 17:40:39

标签: svn

有没有办法对Subversion存储库进行格式化以避免这样的消息:

svn: Expected format '3' of repository; found format '5'

当您从多台计算机访问存储库时,会发生这种情况,并且您无法在所有这些计算机上使用一致版本的Subversion。

更糟糕的是,在不同的服务器上有多个具有各种格式的存储库,而且我无法自由升级其中一些服务器。 ~~~

6 个答案:

答案 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/