本文介绍利用svnsync来同步版本库,达到备份版本库的目的。
关于SVN的介绍:
我的环境:(环境不必与我相同,视实际而这定,我试过备用低版本的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!