跨服务器迁移Subversion存储库

Tot*_*ile 13 svn migrate repository fsfs

我们正在移动服务器,其中一个最后的项目是移动到svn存储库.

大约有10个各种svn存储库.它们是使用以下命令创建的: svnadmin create --fs-type fsfs

服务器A(原始)具有svn 1.4,而服务器B(目标)具有svn 1.6.

我的想法是用来rsync迁移整套存储库(它们都在服务器上的1个文件夹中),但是我担心有些东西可能无法迁移,或者我需要特殊的开关来rsync实现这一点.

大多数在线教程只讨论一次移动1个存储库,例如使用svnadmin hotcopy,但我需要大约100个左右移动.这是正确的方法吗?

Pet*_*ker 15

Subversion的FSFS在复制和移动时非常稳定,即使在不同的操作系统上也是如此.虽然mliebelt是关于通过转储重装这样做是正确的,它需要年龄移动10 GB!

这就是我推荐以下程序的原因:

  1. 通过文件系统将存储库复制到新服务器.
    例如$ scp -r /var/repos/ user@newServer:repos/

  2. 做一个$ svnadmin upgrade做在库的更新1.6(这是可选的,但强烈建议,如果你想使用1.5/1.6的功能,如合并跟踪,稀疏检出,等等)

  3. 做一个$ svnadmin verify对每个存储库,以核实所有版本都还行(你可以做到这一点上已经运行的服务器).

通过这个程序,你需要大约10到100倍的时间:

例如,对于转储存储库,它通常每小时大约需要1 GB(主要取决于HD速度),转储文件比存储库大得多(在SVN 1.4中!)因此,您必须将较大的文件移动到新服务器并且那里的转储负载也需要大约1小时/ GB.将此与文件系统副本进行比较,如果您有GBit-LAN​​,则该文件系统副本通常仅受网络连接(100 mbit约10 MB /秒)或HD(约100 MB /秒)的限制.

  • 这就是我最终做的,只是使用普通的rsync!首先,我必须设置svn用户/组.移动后,我使用svnadmin验证验证了存储库是否正常.最后,我必须编辑/etc/init.d/svnserve脚本以指向正确的目录.一切似乎现在都有效!(只想添加保留所有时间戳和用户/组权限) (2认同)