快捷搜索: 王者荣耀 脱发

svn服务器代码迁移与同步

这里是从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

等待数据传输完毕。。。。

经验分享 程序员 微信小程序 职场和发展