SVN服务器增量备份

团队里有一台SVN服务器,空间达到了几十个G,之前一直是隔段时间全盘拷贝备份,但是感觉太烦锁了,前段时间做了将这台服务器SVN的内容同步到另一台服务器上,挺好用的,总结一下,过程:


操作系统:windows server 2008

SVN:VisualSVN Server 

服务器:A表示原来代码服务器,B表示同步服务器 

备份服务器安装与A相同的VisualSVN Server版本


1.在B上的环境变量(path)添加:C:\Program Files (x86)\VisualSVN Server\bin    添加这一步主要是为了下面用到SVN的命令不用输路径


2.创建库,由于A服务器已有了很多库,所以做成了批处理文件的方式,文件内容如下:

svnadmin create 盘符:/Repositories/项目库1

svnadmin create 盘符:/Repositories/项目库2

……

项目库1、2的名称与A里的一样

然后执行这个批处理文件,然后Repositories会出现很多库文件夹了……


3..创建目标库的hooks文件,文件名为pre-revprop-change.bat,内容为空,先放在..\sysmodel目录下


4.将上步创建的文件拷到每个库文件夹下,跟上步一样,用批处理文件,文件内容:

copy /y 本地盘符:\Repositories\sysmodel\pre-revprop-change.bat 盘符:\Repositories\项目库1\hooks

copy /y 本地盘符:\Repositories\sysmodel\pre-revprop-change.bat 盘符:\Repositories\项目库2\hooks

……

然后执行这个批处理文件


5.关联A与B里的库(初始化),还是用批处理:

svnsync init file:///本地盘符:/Repositories/项目库1 项目库1的SVN路径(在A服务器上的)

svnsync init file:///本地盘符:/Repositories/项目库2 项目库2的SVN路径(在A服务器上的)

……

然后执行这个批处理文件,这一步是将A的内容同步下来了,时间有点久……


6.到上一步,B与A的内容一致了,但是如果A上某个库的项目库有更新怎么办呢?这时要用到windows里的任务计划功能了

(1)新建同步库.bat的批处理,内容如下:

svnsync sync file:///本地盘符:/Repositories/项目库1

svnsync sync file:///本地盘符:/Repositories/项目库2

……

(2)新建任务计划,在计划里调用上一步建立的批处理文件。每当任务执行时,就可以将A服务器里对应项目库的更新内容差量更新下来了。


你可能感兴趣的:(项目管理)