1. 在新服务器上创建 代码仓库
现创建目录/home/svn/repos
```
svnadmin create /home/svn/repos
```
2. 修改新建仓库中hooks 下的 名为 pre-revprop-change 的文件:
```
cp pre-revprop-change.tmpl pre-revprop-change
```
给pre-revprop-change文件 赋执行权限
```
chmod 777 pre-revprop-change
```
修改 pre-revprop-change 脚本最后一行 为 exit 0
```
vim pre-revprop-change
```
![](https://box.kancloud.cn/4e0500eb4bbafaba0df723b0a5b2888c_571x193.png)
3.初始化(自行修改原服务器的IP)
```
svnsync init file:///home/svn/repos svn://xx.xx.xx.xx
```
svnsync init file:// 新机器仓库目录路径 源服务器的IP(可以通过 http 协议,还可以通过svn协议)
(PS : 这块需要输入密码验证,新服务器的密码 源服务器SVN的账号密码,此账号应该有仓库所有代码的读取权限)
4. 同步
```
svnsync sync file:///home/svn/repos
```
5. 等待同步完成,启动SVN服务器即可。至此,SVN服务就已经迁移完了。
迁移完成之后,发现提交代码有问题,报错如下:
解决方式是: 将原仓库的 uuid 复制过来,覆盖新服务器上的UUID
6. 突然断网导致的问题。
![](https://box.kancloud.cn/f247e07de5aa9050c28336e2ae27e53b_447x229.png)
再次运行显示
![](https://box.kancloud.cn/f30f07b5ba8a36f11d4424b17b74bb3c_467x187.png)
**需要执行**
```
svn propdel svn:sync-lock --revprop -r 0 file:///home/svn/repos
```
恢复正常
![](https://box.kancloud.cn/d117316621116c2de9a3285dc5991811_591x69.png)
参考链接:
SVN权限控制
```
https://blog.csdn.net/cuiyaoqiang/article/details/51784391
```
SVN sync同步:
```
http://blog.chinaunix.net/uid-25266990-id-2953695.html
```
SVN 实时同步:
```
http://blog.51cto.com/php2012web/1852311
https://blog.csdn.net/xyw591238/article/details/51914908
```