文档章节

用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
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
svn服务用svnsync命令双机热备

源目录: svn://srcIP/taobaotop 目标目录: svn://desIP/taobaotop 步骤: 如果目标目录存在相同的项目,请先清除,重新建立空项目,比如: mkdir -p /data/svndata/taobaotop svnadmin crea...

apishow
2012/11/29
0
0
linux下svn的常用操作命令总结

导入代码文件到 repo 版本库 我的代码文件存放在 /var/www/html/; svn代码版本库的路径 /application/svndata/repo (也就是刚刚我们创建的版本库的位置); 执行导入命令: svn import /va...

浅景尘
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
0
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
5
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
33
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部