- 前言
SVN部署好了之后,备份又是个问题。这里选择svnsync工具进行备份。
从centos上的源库备份到Windows server2012 服务器中(我是从windows server2012[192.168.1.1]上的源库备份到windows 2008R2[192.168.1.2]备份库上)。
注意注意再注意:这个是单向同步,备份库不能有任何人为修改版本号,否则会同步失败,否则会同步失败,否则会同步失败
- 实施过程
2.1 备份服务器svn配置(我这里的192.168.1.2)
首先要安装VisualSVN Server Manager,这个直接点击安装,默认即可。
然后右键“Repositories”, 新建仓库:
选择第一个(版本不一样,第一步选择的也不一样),下一步:
这里一定要选择第一个,空白仓库。设置仓库名,我这里用的是“svnMirror”。
然后需要修改仓库的配置文件。仓库的地址是:D:\Repositories\svnMirror\hooks(视情况而定)
修改文件”pre-revprop-change.tmpl”将其最后一行修改为:”exit 0”,
然后复制一份,文件名:”pre-revprop-change.bat”, 把内容改为
“echo “Changing revision properties other than svn:log is prohibited” >&2
exit 0”
如图所示:
添加用户,右键“Users”,新建用户,权限一定要给予“读写”。
到这里Windows端svn算是配置好了。
2.2 linux端配置(如果你的源库是windows,使用的命令都是一样的,本人经过测试完全成功)
首先初始化同步设置(windows操作一样):
svnsync init https://192.168.1.2:4431/svn/svnMirror file:///zfspool/svn/project --username svnMirror --password 123456
语法是:svnsync init {备份库url} {源库url} 备份库的用户名 密码
注意本地url是三个斜杠的:///
其中4431是自定义的端口号,如果是默认的可以不用加。
******** 注意 **********
这里面需要有一点注意的,我在使用https初始化、同步和后面结合hooks,提交后自动同步操作的时候,提示ssl认证失败,如果你要嫌麻烦的话,可以像我一样把SVN的https换成http访问,具体修改看下图(版本不一样,设置可能也不一样):
然后第一次备份:
svnsync sync https://192.168.1.2:4431/svn/svnMirror
只需要备份库地址,初始化的时候已经设置源库地址了。执行完就同步成功了。
2.3 结合hooks实现,只要在源库commit后,直接同步到备份库里面
在源库服务器上源库的hooks中创建 post-commit.bat 文件
内容如下:
svnsync sync --non-interactive https://192.168.1.2:4431/svn/svnMirror --username svnMirror --password 123456
这步完成后,在本地向源库服务器svn提交数据时,就会自动同步到备份库
注意:这个是单向同步,而且备份库不能有任何人为修改版本号,否则会同步失败。