svn如果是同版本同系统迁移,只需要复制粘贴即可。如果跨大版本迁移,需要使用仓库的导出、导入功能。对于下仓库可直接执行,对于大仓库需要分批导入。文件过大,多次传输校验md5失败。实测结果7g正常,83g失败。
查看总版本数
1
| svnlook youngest H:\Repositories\reins_svn
|
假设结果为38000。
每 5000 版本一批
最后一批单独处理
1 2 3 4 5 6 7
| svnadmin dump -r 0:5000 H:\Repositories\reins_svn > H:\svn_backup\reins-r0-5000.dump svnadmin dump -r 5001:10000 H:\Repositories\reins_svn > H:\svn_backup\reins-r5001-10000.dump svnadmin dump -r 10001:15000 H:\Repositories\reins_svn > H:\svn_backup\reins-r10001-15000.dump svnadmin dump -r 15001:20000 H:\Repositories\reins_svn > H:\svn_backup\reins-r15001-20000.dump svnadmin dump -r 20001:25000 H:\Repositories\reins_svn > H:\svn_backup\reins-r20001-25000.dump svnadmin dump -r 25001:30000 H:\Repositories\reins_svn > H:\svn_backup\reins-r25001-30000.dump svnadmin dump -r 30001:35000 H:\Repositories\reins_svn > H:\svn_backup\reins-r30001-35000.dump
|
传输到目标服务器
文件传输到目标服务器。方式随意。对两方文件进行md5校验。
文件名称根据实际情况修改。
1
| certutil -hashfile "reins-r0-5000.dump" MD5
|
如果结果不一致,说明文件传输失败。
创建新仓库
路径和文件名根据实际情况修改。
1
| svnadmin create F:\Repositories\reins_svn
|
依次导入(按顺序)
路径和文件名根据实际情况修改。
1 2 3 4 5 6 7
| svnadmin load F:\Repositories\reins_svn < F:\svn_backup\reins-r0-5000.dump svnadmin load F:\Repositories\reins_svn < F:\svn_backup\reins-r5001-10000.dump svnadmin load F:\Repositories\reins_svn < F:\svn_backup\reins-r10001-15000.dump svnadmin load F:\Repositories\reins_svn < F:\svn_backup\reins-r15001-20000.dump svnadmin load F:\Repositories\reins_svn < F:\svn_backup\reins-r20001-25000.dump svnadmin load F:\Repositories\reins_svn < F:\svn_backup\reins-r25001-30000.dump svnadmin load F:\Repositories\reins_svn < F:\svn_backup\reins-r30001-35000.dump
|
验证完整性
方法一:安静模式(推荐)
1
| svnadmin verify -q F:\Repositories\reins_svn
|
只输出错误,正常版本不显示。没输出就是没问题。
方法二:输出到文件
1
| svnadmin verify F:\Repositories\reins_svn > verify-result.txt 2>&1
|
查看版本数
svnlook youngest F:\Repositories\reins_svn
最后一批处理
之前的操作都可以在老库正常运行情况下执行。最后部分需要关停老库情况运行,然后导入新库。启用新库。
1 2 3 4 5 6
| 老库 svnadmin dump -r 30001:35000 H:\Repositories\reins_svn > H:\svn_backup\reins-r35001-38000.dump 两边均执行 certutil -hashfile "reins-r35001-38000.dump" MD5 新库 svnadmin load F:\Repositories\reins_svn < F:\svn_backup\reins-r35001-38000.dump
|
账号处理
新老版本差异过大则文件无法直接识别,需要手动单独配置帐号密码和权限。