SVN数据迁移到新的服务器
[TOC]
前言
安装
SVN 安装及初始化 可以查看 http://www.astarblog.cn/index.php/2017/12/21/390.html
迁移
dump出源机器SVN的代码库,然后load到新服务器上去。
使用 svnsync 直接同步源机器代码库。
区别:仓库不大的时候可以考虑第一种,如果过大,dump完,看了一下dump文件,几十个G,太大了,所以我推荐第二种方式,我也是用的第二种
svnsync 同步
1 . svnadmin create /home/yst/svn/svn-admin/repos5
2 . 修改新建仓库中hooks 下的 名为 pre-revprop-change 的文件:
cp pre-revprop-change.tmpl pre-revprop-change
chmod 777 pre-revprop-change ( 给pre-revprop-change文件 赋执行权限 )
修改 pre-revprop-change 脚本最后一行 为 exit 0
3 . 初始化 ``` svnsync init file:///home/yst/svn/svn-admin/repos5 svn://xx.xx.xx.xx ( 初始化 )
svnsync init file:// 新机器仓库目录路径 源服务器的IP(可以通过 http 协议,还可以通过svn协议)
```
(PS : 这块需要输入密码验证,新服务器的密码 源服务器SVN的账号密码,此账号应该有仓库所有代码的读取权限)
4 . 同步
svnsync sync file:///home/yst/svn/svn-admin/repos5 ( 同步 )
5 . 完成
等待同步完成,启动SVN服务器即可。至此,SVN服务就已经迁移完了。
6 . 可能会遇到的错
提交的时候可能会报错,
解决方式是: 将原仓库的 uuid 复制过来,覆盖新服务器上的UUID
钩子(hooks)
1 . 修改新建仓库中hooks 下的 名为 pre-revprop-change 的文件: ``` cp post-commit.tmpl post-commit
chmod 777 post-commit ( 给post-commit文件 赋执行权限 ) ```
2 . 对文件进行更改
export LANG=en_US.UTF-8
SVN=/usr/bin/svn #这里配置的是svn安装bin目录下的svn文件
WEB=/var/www/html/test #要更新的目录
$SVN update $WEB --username cqh --password 123456
chown -R www:www $WEB
3 . 测试提交通过
常用命令
1 . 开启SVN仓库
svnserve -d -r /data/svn/
2 . 检出仓库
svn checkout svn://127.0.0.1/onyxgame
3 . 同步初始化
svnsync init file:///data/svn/onyxgame svn://127.0.0.1/onyxgame
4 . 开始同步
svnsync sync file:///data/svn/onyxgame
参考文档: https://blog.****.net/liangcl_2018/article/details/79745688