我们在客户端和服务器上运行Subversion 1.5.4。是否可以直接从Subversion 1.5升级到1.7版?这样做需要哪些步骤?
答案 0 :(得分:21)
较旧的客户端和服务器与1.7服务器和客户端透明地互操作。但是,除非客户端和服务器都是最新版本,否则某些新的1.7功能可能无法使用。在某些情况下,如果客户端是新的并且服务器旧了,新功能将起作用但运行效率会降低。
无需转储和重新加载存储库。 Subversion 1.7服务器可以读取和写入早期版本创建的存储库。要升级现有的服务器安装,只需在较旧的库之上安装最新的库和二进制文件。
Subversion 1.7服务器使用与Subversion 1.6相同的存储库格式。因此,可以在1.6.x和1.7.x服务器之间无缝升级和降级,而无需更改磁盘存储库的格式。 (对于任何一对1.x和1.y服务器,这通常不正确,但恰好适用于1.6和1.7。)如果在服务器上启用了新的1.7功能(在挂钩或服务器配置文件中),当然,必须在恢复到1.6服务器之前禁用它。
Subversion 1.7客户端使用新的工作副本格式。 Subversion 1.7客户端无法使用Subversion 1.6(及更早版本)工作副本。使用Subversion 1.6及更早版本创建的现有工作副本需要先升级才能与Subversion 1.7客户端一起使用
如果我的记忆很好,那么1.5就会透明地更新为1.6
从发布说明中也
Subversion 1.7对工作副本格式进行了重大更改。在以前的Subversion版本中,Subversion会在执行写入操作时自动将工作副本更新为新格式。然而,Subversion 1.7将使其成为手动步骤。在将Subversion 1.7与其工作副本一起使用之前,将要求用户运行新命令svn upgrade以将元数据更新为新格式。此命令可能需要一段时间,对于某些用户,简单地签出新的工作副本可能更实际。
注意:Subversion 1.7无法升级1.6客户端在运行svn清理之前拒绝操作的工作副本(使用1.6客户端)。换句话说,在升级到1.7之前,必须使用1.6客户端在需要清理的所有工作副本上运行svn cleanup。我们对此限制感到遗憾,但我们必须引入它以便1.7及时发货,而不会使内部结构过于复杂。
答案 1 :(得分:1)
要完成答案,1.5是透明地更新到1.6是正确的。根据{{3}},需要1.6存储库的唯一功能是FSFS打包,请参阅1.6 release note。
如果需要打包以获得大型存储库性能,则必须在使用svnadmin upgrade
之前在每个存储库上运行svnadmin pack
。
您可能也对我的svnadmin pack
感兴趣,可以在打包之前估算和调整分片大小,也可以解压缩打包的存储库。
答案 2 :(得分:0)
当我们从SVN 1.6升级到SVN 1.8时,SVN 1.8客户端非常适合签出和提交,但是当尝试合并时,它会抱怨这个错误:
svn: E200020: Invalid revision number '0' found in range list
这是因为SVN 1.6已将修订版0放在svn:mergeinfo
属性中,而SVN 1.8客户端不再允许这样做。
我们必须重写整个SVN存储库历史记录,并在0
属性中将修订版1
的任何提及替换为修订版svn:mergeinfo
。我们写了svndumpapi来执行此操作replacement。