本文介绍利用svnsync来同步版本库,达到备份版本库的目的。
关于SVN的介绍:http://wowking.blog.51cto.com/1638252/962410
我的环境:(环境不必与我相同,视实际而这定,我试过备用低版本的SVN Server同步,也成功了)
主SVN Server(Windows Server 2008 R2 + VisualSVN Server Manager r2.54)
备用SVN Server(Windows Server 2003 + VisualSVN Server Manager r2.54)
目标:
实现的是版本库的远程自动备份,将版本库备份到另一台机器上。当主版本库出现问题时,可切换到备用版本库,从而提高SVN的可用性。
目标版本库机器A,路径为:"http://192.168.10.42/svn/ivey"(这里主机名对应的是这个IP地址),具体路径不必理会,因为这里使用http协议(主SVN)
源版本库机器B,路径为:"file:///D:/SVN_Repositories/ivey",这个为了简单和安全,我们使用file:///协议 (备用SVN) [“D:/SVN_Repositories/ivey”视实际版本库路径而定]
过程:
1、在源版本库机器B上,创建目标库
a.
b.
2、修改
源版本库机器B中目标库的脚本
“
pre-revprop-change.tmpl
”
进入
”D:\SVN_Repositories\ivey\hooks” (D:\SVN_Repositories 这个代码库的保存路径,视实际而定)
编辑
”pre-revprop-change.tmpl”将其最后一行修改为:”exit 0”;
3、继续创建
”pre-revprop-change.bat”
内容:“echo "Changing revision properties other than svn:log is prohibited" >&2
exit 0”
4、初始化
(最重要的一步)
a.首先需要保证,
有访问目标版本库机器A
中 欲同步的SVN路径的访问权限,没有的话,自行添加;
b.进入SVN安装目录里的BIN文件夹:“cd C:\VisualSVN Server\bin” “视实际安装路径而定”
c.输入”svnsync init file:///D:/SVN_Repositories/ivey http://192.168.10.42:88/svn/ivey/”会提示输入用户名和密码,这里提供的用户名和密码就是刚刚确认的4.a中的用户与密码;(”svnsync init file:///”这个是固定的,"D:/SVN_Repositories/ivey"这是源版本库机器B中SVN目录的路径,"http://192.168.10.42:88/svn/ivey/"这是目标版本库机器A中SVN目录路径。注意空格)
5、同步
继续输入
"
svnsync sync file:///D:/SVN_Repositories/ivey
" [
D:/SVN_Repositories/ivey,为同步目录
]
到此完成了一次同步。
PS:以后的同步就只需操作第5步“同步”,不再需要初始化了。Good luck!
__________________________________________________________________________
本文原地址:http://wowking.blog.51cto.com/1638252/847510
另外文件备份策略:http://wenku.baidu.com/link?url=oN8cajtgpcZSnYNf5oQrDA_tdntUSETcGuZ3TOvLTCh_ogZ7juIS6Ens611lspuYD8ggNFpLegsjHAJ8fJ1INAPJVnqpHMzdPQfzgOC9BB3