从 1.7 迁移到 1.14 并确保数据万无一失,最稳妥的方式是 "跨版本导出/导入" (dump/load) 方案。通过 svnadmin dump 和 load 可以确保所有历史数据的完整迁移。迁移时导出数据用的 dump 文件,导入到新创建的空仓库中(不能事先初始化任何内容),否则会造成冲突。用户、权限配置等 conf 目录下的内容不能自动迁移,需要手动复制或重新配置。
一、停服与导出 (在老服务器上执行)
#关闭svn服务
ps -aux | grep svn
kill -9 pid
#导出svnadmin dump /home/svn/myrepo > /tmp/myrepo.dump
二、文件传输与目标环境准备
#复制到目标服务器
scp -r /home/svn/myrepo/conf/ root@192.168.1.253:/home/tmp
scp /tmp/myrepo.dump root@192.168.1.253:/home/tmp
#目标服务器安装svn1.14版本(CentOS 7.9 默认yum源中的SVN版本是1.7,要安装1.14,需要先配置Wandisco的yum源)vim /etc/yum.repos.d/wandisco-svn.repo
#保存wandisco-svn.repoWandiscoSVN
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/7/svn-1.14/RPMS/$basearch/
enabled=1
gpgcheck=0
#安装svn1.14版本yum install -y subversion
svnserve --version
三、数据导入 (在目标服务器上执行)
#创建目录
mkdir -p /home/svn/myrepo
#创建空版本库svnadmin create /home/svn/myrepo
#load 导入数据svnadmin load /home/svn/myrepo < /home/tmp/myrepo.dump
四、配置迁移与服务重启
#配置文件迁移
yes | cp -rf /home/tmp/conf /home/svn/myrepo
#启动服务svnserve -d -r /home/svn/
五、验证与切换
#历史项目切换svn地址
svn relocate svn://192.168.1.253/myrepo