SVN仓库迁移与多服务器同步
- 安装SVN
- SVN仓库迁移步骤
- 方式一: dump出源机器SVN的代码库,然后load到新服务器上去
- 方式二:使用 svnsync 直接同步源机器代码库。
安装SVN
1、在旧服务器中,使用命令svn --version查看svn版本
2、根据第一步得到的svn版本来安装(根据自己的版本号),执行yum安装
yum -y install subversion
检查SVN 是否安装成功。
svn --version
SVN仓库迁移步骤
其他:
1.建议迁移的时候停掉SVN服务器
2.推荐第二种,使用svnsync进行迁移。第一种使用dump出源机器代码库,dump完文件可能会很大
3.迁移完成后可能需要在新服务器上启动服务与配置自启动
svnserve -d -r /var/svn
方式一: dump出源机器SVN的代码库,然后load到新服务器上去
1.新的服务器创建仓库
mkdir /var/svn
svnadmin create /var/svn/beijing
2.旧服务器备份数据
svnadmin dump /var/svn/beijing > svn_dump
3.svn_dump 拷贝到新服务器上
4.加载到仓库
svnadmin load /var/svn/beijing < svn_dump
5.校验
svnadmin verify /var/svn/beijing
6.复制旧服务器上的svn仓库uuid到新服务器对应的svn仓库
# 旧服务器
cat /var/svn/beijing/db/uuid
377a6a05-9332-4c47-8750-51f963256f71
# 新服务器
vim /var/svn/beijing/db/uuid
# 用旧服务器的uuid替换这里的uuid
7.按照需要替换conf文件
8.使用svn客户端测试
方式二:使用 svnsync 直接同步源机器代码库。
1.创建本地svn库
注意:请确认配置的svn用户有写入权限。且对来源SVN有读取权限,且密码相同。建议用相同用户名和密码
mkdir /var/svn
svnadmin create /var/svn/beijing
2.进入hook目录,配置备份SVN的pre-revprop-change文件
cd /var/svn/beijing/hooks/
cp pre-revprop-change.tmpl pre-revprop-change
vi pre-revprop-change
3.修改pre-revprop-change文件(可根据情况调整)
#限制只有syncuser用户才能提交版本属性修改到此版本库
if [ "$USER" = "xxxxxx" ]; then exit 0; fi
4 .添加权限
chmod a+x pre-revprop-change
5 .初始化备份SVN
svnsync init 本地svn库(用file协议简单安全) 源库(远程访问地址) --username test --password 123456
svnsync init file:///var/svn/beijing svn://39.96.160.130/beijing --username test --password 123456
6 .命令运行后会提示,选择yes即可,后面再运行备份命令就可以不用再输入用户名和密码了
7. 在备份服务器测试数据同步,运行命令(初次运行命令可能会等待一会,时间根据源库文件数量有差异)
svnsync synchronize file:///www/svndata/testsync --username test --password 123456
8.钩子创建及实时备份
如果本地库没有创建钩子的话,需要在每次执行完备份命令后,再手动执行svn up
可以创建钩子实现代码同步。
9.在来源SVN配置post-commit hook,启用实时备份(真正的同步)
svnsync sync 本地URL
svnsync sync --non-interactive svn://39.96.160.130/beijing --username test --password 123456
其他:如果只是迁移SVN库可只执行
svnsync init file:///var/svn/beijing svn://39.96.160.130/beijing --username test --password 123456
svnsync sync --non-interactive svn://39.96.160.130/beijing --username test --password 123456