SVN异地同步备份

最近做一个项目,因为网速的原因,SVN在我机器上架设。开始时是每天弄完之后打个包扔在服务器上备份,后来想是不是可以两个SVN服务器间同步呢?说干就干,有请度娘,谷哥登场。。。

 

终于找到一篇介绍SVN同步的,照着做吧。

参考:http://wowking.blog.51cto.com/blog/1638252/847510

 

我的环境:(环境不必与我相同,视实际而这定,我试过其它版本的SVN Server同步,也成功了)

主SVN Server(Windows Server XP + VisualSVN Server Manager V2.56)

备用SVN Server(Windows Server 2003 + VisualSVN Server Manager V2.1.10)

 

目标:
实现的是版本库的远程自动备份,将版本库备份到另一台机器上。当主版本库出现问题时,可切换到备用版本库,从而提高SVN的可用性。

 

源版本库本地机器A ,路径为:”http://192.168.0.125:8080/svn/SVNSyncSample”

 点击查看原图

目标版本库服务器B ,路径为:”https://123.123.123.123/svn/SVNSyncSampleBak/” (因为用的公司服务器演示,IP隐藏哈) ,亦可为路径”file:///D:/SVN/Repositories/SVNSyncSampleBak” 这个可以看上边说的参考网站,本文只用IP地址说明。

 

开始:

Step1:在目标版本库服务器B上创建目标库。

点击查看原图点击查看原图

Step2:修改目标版本库服务器B中目标库的脚本“pre-revprop-change.tmpl”

进入“D:\Repositories\SVNSyncSampleBak\hooks”

编辑“pre-revprop-change.tmpl”将其最后一行修改为:”exit 0”;

点击查看原图

Step3:在目标版本库服务器B上继续创建“pre-revprop-change.bat”

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

点击查看原图

Step4:初始化(据说是最重要的一步,睁大眼睛看好啊)

首先需要保证,目标版本库服务器B中,欲同步的SVN路径有访问权限,没有?自行添加吧

a.       在源版本库本地机器A中创建用于同步的用户

点击查看原图

b.       打开源版本库本地机器A里的SVN安装目录的BIN文件夹(参考网站是在服务端操作的,有需要,可参考)“D:\Program Files\VisualSVN Server\bin”

点击查看原图

c.       输入“svnsync init https://123.123.123.123/SVN/SVNSyncSampleBak/ http://192.168.0.125:8080/SVN/SVNSyncSample/”会提示一个警告,不用管它

点击查看原图

Step5:同步

搞完了,开始同步吧,这里会先后要求回答一个问答题,再让输入服务器密码,本地SVN用户名,密码

点击查看原图点击查看原图点击查看原图

刚才故意输错密码就是想告诉你记得是刚才在本地创建的那个用户和密码哟

现在开始初始化目标版本库服务器B了。时间稍微有点第,现在开始数点点吧

点击查看原图

点击查看原图 

以后再同步的话就只需要输入svnsync sync https://123.123.123.123/svn/SVNSyncSampleBak 就可以同步了

如果报错的话,就先运行svn propdel svn:sync-lock --revprop -r 0 https:// 123.123.123.123/svn/SVNSyncSampleBak

建议写一个批处理

创建一个同步svn.bat的文件

内容:

cd D:\Program Files\VisualSVN Server\bin

svn propdel svn:sync-lock --revprop -r 0 https:// 123.123.123.123/svn/SVNSyncSampleBak

svnsync sync --username xhch --password xhch https:// 123.123.123.123/svn/SVNSyncSampleBak

 

(这里的—username xhch –passwork xhch是目标版本库服务器B的SVN用户和密码)

 

上一篇‡: 统计数据库中表,视图,存储过程个数的SQL

下一篇‡: 在winform中设置快捷键

最近回复