2022年10月28日08:43:17
网上有很多的迁移方案,但是发现不适合多个子项目的svn库
例如:
svnadmin create /usr/local/svn_home/repostory 创建版本库repostory
cd /usr/local/svn_home/repostory
cp hooks/pre-revprop-change.tmpl hooks/pre-revprop-change
chmod 777 hooks/pre-revprop-change
vim hooks/pre-revprop-change # 修改最后一行代码,如下
exit 0
具体迁移命令
svnsync init file:///usr/local/svn_home/repostory svn://ip或者域名/repostory
svnsync sync file:///usr/local/svn_home/repostory
通过svn的使用发现一个其他办法,更加简单高效
创建两个仓库
svnadmin create /svn_data/www/crm
svnadmin create /svn_data/www/api
启动服务脚本 svn.sh
#!/bin/bash
#chkconfig: 2345 80 90
#description:auto_run
/usr/bin/svnserve -d -r /svn_data/www
启动服务
sh svn.sh
svnserve启动是没有依赖特定文件或者配置的,所以完全可以copy原服务器的文件到新服务,修改脚本之后直接启动
我的方案是:
1,原服务器a svn服务停止,scp服务器a的/svn_data/www目录的所有文件到新服务器b,如果a,b不能直连,通过sftp转传一下
2,最好不要先子项目改配置文件,按照服务器a的路径直接迁移过去,在启动sh svn.sh服务,客户端测试一下a,b服务器svn项目的日志和文件是否一致
3,测试没问题之后,在根据自己新服务的资源,修改svn项目的配置文件,或者更改路径等,在启动测试
这样省去很多操作,特别子项目很多的svn库
一些需要注意的操作:
开机启动
将脚本拷贝到/etc/rc.d/init.d目录下
cp /svn_data/svn.sh /etc/rc.d/init.d/
2.增加脚本的可执行权限
chmod +x /etc/rc.d/init.d/svn.sh
3.添加脚本到开机自动启动项目中
cd /etc/rc.d/init.d
chkconfig --add svn.sh
chkconfig svn.sh on
注意:关闭 selinux 不然会影响开机启动
vi /etc/selinux/config,
将SELINUX=enforcing改为SELINUX=disabled
关闭firewalld
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service