SVN数据迁移到新的服务器

[TOC]

前言

安装

SVN 安装及初始化 可以查看 http://www.astarblog.cn/index.php/2017/12/21/390.html

迁移

  1. dump出源机器SVN的代码库,然后load到新服务器上去。

  2. 使用 svnsync 直接同步源机器代码库。

区别:仓库不大的时候可以考虑第一种,如果过大,dump完,看了一下dump文件,几十个G,太大了,所以我推荐第二种方式,我也是用的第二种

svnsync 同步

1 . svnadmin create /home/yst/svn/svn-admin/repos5

SVN数据迁移到新的服务器

2 . 修改新建仓库中hooks 下的 名为 pre-revprop-change 的文件: cp pre-revprop-change.tmpl pre-revprop-change

SVN数据迁移到新的服务器

chmod 777 pre-revprop-change ( 给pre-revprop-change文件 赋执行权限 )

SVN数据迁移到新的服务器

修改 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协议)
```

SVN数据迁移到新的服务器

(PS : 这块需要输入密码验证,新服务器的密码 源服务器SVN的账号密码,此账号应该有仓库所有代码的读取权限)

4 . 同步 svnsync sync file:///home/yst/svn/svn-admin/repos5 ( 同步 ) 5 . 完成 等待同步完成,启动SVN服务器即可。至此,SVN服务就已经迁移完了。

6 . 可能会遇到的错

提交的时候可能会报错,

解决方式是: 将原仓库的 uuid 复制过来,覆盖新服务器上的UUID

SVN数据迁移到新的服务器

钩子(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.csdn.net/liangcl_2018/article/details/79745688