整理了一下svnrsync的配置

我的环境:(环境不必与我相同,视实际而定,我试过备用低版本的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)

012440165.jpg

源版本库机器B,路径为:"file:///D:/SVN_Repositories/ivey",这个为了简单和安全,我们使用file:///协议 (备用SVN) [“D:/SVN_Repositories/ivey”视实际版本库路径而定]


过程:

1、在源版本库机器B上,创建目标库

a.

012517732.jpg

b.
012553914.jpg

2、修改 源版本库机器B中目标库的脚本 pre-revprop-change.tmpl
进入” D:\SVN_Repositories\ivey\hooks” (D:\SVN_Repositories 这个代码库的保存路径,视实际而定)
编辑” pre-revprop-change.tmpl”将其最后一行修改为:” exit 0”;
012646438.jpg
3、继续创建” pre-revprop-change.bat

内容:“echo "Changing revision properties other than svn:log is prohibited" >&2
exit 0

012728843.jpg
4、初始化 (最重要的一步)
a.首先需要保证, 有访问目标版本库机器A中 欲同步的SVN路径的 访问权限,没有的话,自行添加;
012805738.jpg


b.进入SVN安装目录里的BIN文件夹:“cd C:\VisualSVN Server\bin” “视实际安装路径而定”
012839909.jpg

c.输入”svnsync init file:///D:/SVN_Repositories/ivey http://192.168.10.42:88/svn/ivey/ -username victor.jin --password xxx ”,这里提供的用户名和密码就是刚刚确认的4.a中的用户与密码;(”svnsync init file:///”这个是固定的,"D:/SVN_Repositories/ivey"这是源版本库机器B中SVN目录的路径,"http://192.168.10.42:88/svn/ivey/"这是目标版本库机器A中SVN目录路径。注意空格)
012948344.jpg


5、同步

继续输入" svnsync sync file:///D:/SVN_Repositories/ivey -username victor.jin --password xxx "[ D:/SVN_Repositories/ivey,为同步目录]
013020457.jpg
到此完成了一次同步。
PS:以后的同步就只需操作第5步“同步”,不再需要初始化了。Good luck!