文档章节

用svnsync 同步备份任意两个svn 版本库

布几岛
 布几岛
发布于 2014/06/20 13:33
字数 643
阅读 27
收藏 0

 

用svnsync  同步备份任意两个svn 版本库    20100706  


如用svnsync  同步备份两台机器的svn 。

要同步的项目名称:svn_repos  

svn  版本库1 。4 以上
源目录:            svn://192.168.108.254/svn_repos    
同步目标目录:      http://    目标IP:8080/svn/svn_repos/    

方法:

1. 如果目标目录 存在相同的项目,请先清除,重新建立空项目
    svnadmin create svn_repos    


2.  在 192.168.120.190   (   目标目录 )->   cendyn  目录下hooks 目录下,建立
pre_revprop-change.bat  全部内容只有一行:exit 0
如果用拷贝同目录下的pre_revprop-change.tmpl  则必须删除最后三行的内容或替换为只有一行:exit 0
不然下面初始化同步的时候,将停顿.  


3.  执行 初始化(在目标目录 )
    svnsync init http://  目标IP:8080/svn/svn_repos/ svn://192.168.108.254/svn_repos    

即svnsync init  目标库 源库
将向你询问登录目标库和源库的用户名和密码,建议为两个库设置相同的用户名及相同的密码正确后,显示
Copied properties for revision 0.  

4.  执行同步(目标目录 )
svnsync sync http://  目标IP:8080/svn/svn_repos/    

5. 更新同步
windows  下:  

在源库的hooks 下面,添加post-commit  脚本
可拷贝post- commit.tmpl->post- commit.bat  

set SVN_HOME="C:\Install Files\svnserver\bin"
%SVN_HOME%\svnsync sync --non-interactive    
http://192.168.120.190:8080/svn/cendyn   --username R00130 --password 123

linux 下:  

在源库的hooks 下面,添加post-commit  脚本

可拷贝post-commit.tmpl  即   

cp post-commit.tmpl post-commit

然后

把 post-commit  中,最后两行替换为   

svnsync sync  --non-interactive http://192.168.108.187:8080/svn/svn_repos/ --username edison --password edison

即提交更新后,即执行同步命令,不进行交互

把post-commit  设为755 权限。   

ps :

如果post-commit 脚本出错,或者无可执行权限,在提交更新时会报错

 

错误处理 :
在源端 ,  同步用的帐号需要有读权限 ,  在目的端同步帐号需要读写权限 .  权限分配合理后 , 基本上就不会出现其他错误 .

如果出现以下列出的之外的错误 ,  请先检查一下 svn  服务是否可正常使用 .
比较常见的错误是 :
# svnsync initialize DEST_URI SRC_URI --username cax  --password password_for_cax
svnsync: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
svnsync: At least one property change failed; repository is unchanged

这是由于系统中没有  pre-revprop-change  钩子脚本导致的 ,  该文件在版本库的  ~/hooks/  下 ,  只需拷贝一份即可 .
cp -pf hooks/pre-revprop-change.tmpl hooks/pre-revprop-change

如果是 windows 系统 ,  还需要清空  pre-revprop-change  的内容 ,  并添加后缀为  pre-revprop-change.bat
在批处理文件中 , Linux 下  shell  中注释符  #   不能被  batch  正确解释也会重复出现该错误 .


本文转载自:http://blog.csdn.net/ysu108/article/details/7570571

共有 人打赏支持
布几岛
粉丝 6
博文 37
码字总数 10513
作品 0
海淀
高级程序员
私信 提问
异地远程迁移SVN库同步数据

按如下 shell 脚本执行顺序一次操作即可。 1、$ cat svnlist.xml Android7.1.1_SHHAI Android7.1.1_BJMO ///////////////////////////////////////////// 各SVN项目库的名字,全部都写到这个...

万事通
2017/10/31
0
0
使用 svnsync 命令对 SVN 库进行备份

使用svnsync备份很简单,步骤如下: 一、在备份机上创建一个空库:svnadmin create SMP 二、更改该库的钩子脚本pre-revprop-change(因为svnsync要改这个库的属性,也就是要将源库的属性备份...

红薯
2009/04/09
2.1K
3
SVN同步镜像到U盘

最近一段时间都在打黄扫非~~牵连了太多无辜~~太多的冤假错案~~有几分像是在焚书坑孺~~~ 自从电信的ADSL封了80端后,通过ADSL 在PC上搭建的SVN一直断断续续,相当不舒服~~现在只好改用U盘进行...

黄平俊
2010/01/05
1K
2
Windows下Subversion配置管理员指南

from: http://www.uml.org.cn/pzgl/200611151.htm //============================ Subversion安装成service  以前的svnserve要想成为windows服务,必须依赖于svnservice或其他工具。从Sub......

jia程序员
2009/05/15
0
0
centos svn迁移备份的两种方法

svn备份方式对比分析 一般采用三种方式: 注意,svn备份不宜采用普通的文件拷贝方式(除非你备份的时候将库暂停),如copy、rsync命令。 曾经用rsync命令来做增量和全量备份,在季度备份检查...

一杆枪
08/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Eureka Server启用 https服务指北

文章共 591字,阅读大约需要 2分钟 ! 概 述 在我的前文《Eureka Server 开启Spring Security Basic认证》中已经给 Eureka Server 开启了最基本的鉴权措施,本文则让 HTTPS加持于 Eureka Ser...

CodeSheep
27分钟前
3
0
OSChina 周二乱弹 —— 其实我在地板也睡不着

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @witt-z :分享歌词: 阴天 在不开灯的房间,当所有思绪都一点一点沉淀。 分享莫文蔚的单曲《阴天》: 《阴天》- 莫文蔚 手机党少年们想听歌,...

小小编辑
49分钟前
152
6
微服务分布式事务实现

https://www.processon.com/view/link/5b2144d7e4b001a14d3d2d30

WALK_MAN
今天
3
0
《大漠烟尘》读书笔记及读后感文章3700字

《大漠烟尘》读书笔记及读后感文章3700字: 在这个浮躁的社会里,你有多久没有好好读完一本书了? 我们总觉得自己和别人不一样,所以当看到别人身上的问题时,很少有“反求诸己”,反思自己。...

原创小博客
今天
4
0
大数据教程(9.5)用MR实现sql中的jion逻辑

上一篇博客讲解了使用jar -jar的方式来运行提交MR程序,以及通过修改YarnRunner的源码来实现MR的windows开发环境提交到集群的方式。本篇博主将分享sql中常见的join操作。 一、需求 订单数据表...

em_aaron
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部