Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2146496
  • 博文数量: 227
  • 博客积分: 10521
  • 博客等级: 上将
  • 技术积分: 3452
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-20 14:59
个人简介

低调做人,高调做事!

文章分类

全部博文(227)

文章存档

2013年(4)

2012年(8)

2011年(16)

2010年(24)

2009年(92)

2008年(83)

分类: LINUX

2009-12-16 20:25:08

实验环境:
A,10.10.10.1(主)
B,10.10.10.2(备)

项目需求,生产环境要求svn服务器实现热备机制,于是就想到了svn自带的svnsync机制,操作流程如下:

1、在要备份的机器上(10.10.10.2)建立版本库
mkdir -p /svnsync/test
svnadmin create /svnsync/test

2、进入备份机器(10.10.10.2)版本库test下的hooks目录。
cd /svnsync/test/hooks/

3、创建pre-revprop-change文件
cp pre-revprop-change.tmpl pre-revprop-change

4、修改pre-revprop-change权限,更改为755
chmod 755 pre-revprop-change

6、修改pre-revprop-change内容
为 echo “Changing revision properties other than svn:log is prohibited” >&2
exit 0(1修改为0)

说明如下:
原脚本的意思是如果修改的是svn:log属性,将允许修改,返回0;否则,不允许,返回1
我们要将它改为允许修改所有的属性,在脚本中直接返回0

7、在备份机器上执行同步初始化操作
svnsync init file:///svnsync/test svn://10.10.10.1/test --username test --password test

会出现以下信息:
Copied properties for revision 0.


8、在备份机器上执行同步操作
svnsync sync file:///svnsync/test

会出现以下信息:
Transmitting file data .
Committed revision 1.
Copied properties for revision 1.
Transmitting file data .
Committed revision 2.
Copied properties for revision 2.
Transmitting file data .
Committed revision 3.
Copied properties for revision 3.


出现以上信息就说明同步成功了。

做了下即时同步,结果没有成功,以后再实验,有经验的朋友可以给小弟提供下参考资料。


注意事项:
svnsync 是 subversion 一个同步工具。当设定好hook并且做过初始化的动作之后,往后的commission都会同步到所设定的另外一个repository中。然而有的時候因为网络断线或者其他因素导致sync程序中止,则在下一次执行svnsync的时候可能会出现以下的问题:

Failed to get lock on destination repos,currently held by 'linux-kbp0:07f6a180-ea47-11de-8346-ddb1d640fb86'
Failed to get lock on destination repos,currently held by 'linux-kbp0:07f6a180-ea47-11de-8346-ddb1d640fb86'
Failed to get lock on destination repos,currently held by 'linux-kbp0:07f6a180-ea47-11de-8346-ddb1d640fb86'

这个时候可能属性被锁了,删掉目的版本库的属性,解决办法如下:
删除SVN仓库修订号0,svn:sync-lock的保护

svn propdel svn:sync-lock --revprop -r 0 file:///svnsync/test(目的同步库)
阅读(8598) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

xuefenfei3272018-07-17 16:27:51

Committed revision 971.
Copied properties for revision 971.
svnsync: E210008: Error while replaying commit 
我最后报了这么个错,,不知该如何解决

chinaunix网友2010-01-08 09:39:31

您如果能给我一点提示的话,请联系msn:zhaoyan_a@hotmail.com 感激不尽!

chinaunix网友2010-01-08 09:38:09

我用你这个方法遇到问题了,麻烦高手你帮助看一下。 8、在备份机器上执行同步操作 svnsync sync file:///svnsync/test Committed revision 3. Copied properties for revision 3. 这里如果版本多的话,我最多到 Committed revision 573. Copied properties for revision 573. 就停了,难道多一点就不能全部执行完吗? 报的错是: svnsync: REPORT 请求“目标库地址”失败 svnsync: REPORT 的结果 “目标库地址”: 200 OK