迁移整个SVN服务器

我们有一个约55 GB的代码的SVN服务器,第二个品牌崭新的SVN服务器,目前服务于一个项目。

我想将旧服务器上的所有内容移到新服务器上,以解除前者的权利。

旧服务器上有73个存储库。

我可以svnadmin dump /usr/local/subversion/*然后导入,或者我需要通过回购做回购?

在大多数情况下,您可以简单地将存储库目录从旧服务器复制到新服务器。 请注意不要覆盖新服务器上已存在的存储库! 如有必要,请更新您的configuration文件以引用新的存储库(这将取决于您的特定服务器configuration)。

您应该在复制目录时closuresApache / svnserve进程,以免在复制过程中更改内容。 如果这是不可取的,你可以使用svnadmin hotcopy在“活”时复制回购。 有关更多信息,请参阅SVN书籍: http : //svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html

一般来说,在下列情况下,您只需要执行svnadmin dump / load周期:

  1. 你有一个SVN 1.0之前的版本库,你想升级它以使用现代版本。

  2. 提交给现有存储库的项目使用svn:externals引用旧的存储库URL。 在这种情况下,您需要使用像svndumptool之类的东西在转储文件上执行正则expression式来修复URL,然后将其加载到新的服务器上。 (在较新版本的SVN中,您可以使用通配符来解决这个问题,但是您可能需要执行转储/装载以修复旧版本。)

  3. 您正在转换存储库格式(例如从BDB到FSFS)。 请注意,如果您有BDB存储库,那么您应该考虑迁移到FSFS,因为BDB从SVN 1.8开始已弃用 。

  4. 您的存储库是使用较早版本的SVN创build的,您想要利用最新SVN(例如, SVN 1.6添加的表示共享 )中find的较新的性能和定义function。

请注意,情况#1和2几乎是您实际需要执行转储/加载循环的唯一时间。

另外,请记住,SVN转储文件将包含存储库挂钩脚本,服务器端configuration文件或来自旧存储库的锁。 它只会包含版本化的数据 。 加载新存储库后,您将需要手动传输这些文件。