svnsync 两个svn库之间的同步

今天项目例会时提到一个这样的问题,我们公司做的一个产品是和客户公司共同开发、需要两边公司都有svn库,这样就导致两个svn库的代码不同步,所以这样就需要设置成两个svn库进行同步,google了一下发现网上好多大虾都已经搞过,所以顺手牵样搞下来学习一下,供大家分享一下 
试验下来,SVNSync除了目标库为只读之外,其它功能都很强大,实现也相对简单。
http://www.svn8.com/svnsy/20090624/6785.html

如用svnsync 同步备份linux 下svn版本库到Windows
要同步的项目名称:MU
svn版本库1。4以上
源目录:svn://192.168.1.196/mu
目标目录:svn://192.168.1.205/mu
 
方法:
1.如果目标目录存在相同的项目,请先清除,重新建立空项目
svnadmin create mu
2.在mu目录下hooks目录下,建立
pre_revprop-change.bat 全部内容只有一行:exit 0
如果用拷贝同目录下的pre_revprop-change.tmpl 则必须删除最后三行的内容或替换为只有一行:exit 0
不然下面初始化同步的时候,将停顿
 
3. 执行 初始化
svnsync init svn://192.168.1.205/mu svn://192.168.1.196/mu
即svnsync init 目标库 源库
将向你询问登录目标库和源库的用户名和密码,建议为两个库设置相同的用户名及相同的密码
正确后,显示
Copied properties for revision 0.

4.执行同步
svnsync sync svn://192.168.1.205/mu
即svnsync sync 目标库
正确执行后,显示
Committed revision 1.
Copied properties for revision 1.
Committed revision 2.
Copied properties for revision 2.
Committed revision 3.
Copied properties for revision 3.
Committed revision 4.
Copied properties for revision 4.
Committed revision 5.
Copied properties for revision 5.
Committed revision 6.
Copied properties for revision 6.
Committed revision 7.
Copied properties for revision 7.
Committed revision 8.
...

5.更新同步
在源库的hooks下面,添加post-commit 脚本
可拷贝post-commit.tmpl
 
cp post-commit.tmpl post-commit
然后
把 post-commit 中,最后两行替换为
 
svnsync sync  --non-interactive svn://192.168.1.205/mu --sync-username user --sync-password user
即提交更新后,即执行同步命令,不进行交互
把post-commit 设为755权限。
 
ps:
如果post-commit脚本出错,或者无可执行权限,在提交更新时会报错
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值