这里是从svn服务器上将代码迁移到新创建的svn服务器上
新创建的svn服务器是docker svn容器
1、创建svn docker容器
参加文章
2、配置新svn服务器
进入挂载的svn目录,找到创建的仓库名称并进入到hooks目录
我这里是这个目录 /opt/svn目录为容器挂载目录
/opt/svn/215pro/hooks
[root@localhost 215pro]# cd hooks/
[root@localhost hooks]# ls
post-commit.tmpl post-revprop-change.tmpl pre-commit.tmpl pre-revprop-change pre-unlock.tmpl
post-lock.tmpl post-unlock.tmpl pre-lock.tmpl pre-revprop-change.tmpl start-commit.tmpl
将pre-revprop-change.tmpl 拷贝为 pre-revprop-change 需将里面的
echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1
改为
echo "Changing revision properties other than svn:log is prohibited" >&2
exit 0
[root@localhost hooks]# cp pre-revprop-change.tmpl pre-revprop-change
[root@localhost hooks]# chmod a+x pre-revprop-change
如果不操作这一步会报错
Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook
3、迁移代码
初始化svn服务
svnsync init http://192.168.9.221:9090/svn/215pro/ svn://192.168.2.15/*****/trunk --username xiangji --password xiangji123456
这个步骤可以在宿主机或者其他主机上操作,条件是网络可以连通两台svn服务器
(如果宿主机是虚拟机,开了nat情况下,会使用nat出网关,要保证是nat的ip有权限还是桥接的ip有权限,视情况关闭其中一个)
操作这个步骤的主机上安装了svn服务,有svnsync相关命令
centos宿主机上可以直接操作
yum install subversion
安装svn ,安装完成之后就有相关命令了
如果旧svn服务器有加密或者权限限制,操作svnsync命令的主机ip要保证有这个权限,不然会出现如下报错
Malformed network data (非法的网络数据)(因为数据被加密了,或者权限不够)
这里使用了192.168.9.221的ip就是旧服务器已经开启了权限的ip地址(公司内部使用了IPG加密的缘故,如果使用其他没放开的ip地址来做svnsync初始化步骤就报非法数据的错误了)
执行完之后开始同步数据命令
svnsync synchronize http://192.168.9.221:9090/svn/215pro/ --username xjrow --password xjrow
等待数据传输完毕。。。。