文档章节

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

布几岛
 布几岛
发布于 2014/06/20 13:33
字数 643
阅读 27
收藏 0
点赞 0
评论 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  正确解释也会重复出现该错误 .


© 著作权归作者所有

共有 人打赏支持
布几岛
粉丝 6
博文 36
码字总数 10017
作品 0
海淀
高级程序员
关于对-话说Svn与Git的区别-中,对svn的申诉

今天看到一篇文章:“话说Svn与Git的区别”https://www.jianshu.com/p/bfec042349ca,通篇都是讲git如何好,svn就没有什么用的样子,对于经常使用svn的我,我想做一点svn的申诉: 1.svn也可以...

zdhsoft ⋅ 03/07 ⋅ 0

【git学习】SVN项目迁移到Git操作指南

2017年6月份的时候,我就着手在公司推广git,首先我自己尝试搭建了GitLab来管理代码,并且通过以下博客记录了GitLab的搭建,以及GitLab备份,GitLab升级等事情。 git学习——>在CenterOS系统...

qq446282412 ⋅ 05/19 ⋅ 0

实战:使用SVN+apache搭建一个版本控制服务器

SVN简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说...

寰宇01 ⋅ 06/14 ⋅ 0

CentOS下通过yum安装svn及配置

CentOS下通过yum安装svn及配置 1.环境 centos5.5 2.安装svn yum -y install subversion 3.配置 建立版本库目录 mkdir /www/svndata svnserve -d -r /www/svndata 4.建立版本库 创建一个新的S...

thinkyoung ⋅ 2015/12/10 ⋅ 0

Svn结合hook实现自动发布及多Project管理更新

项目目的 出于管理需要,也需要在公司内部实现自动发布流程。当开发机提交SVN代码之后,自动同步到测试服务器进行测试。 工作原理 hook简单介绍 配置svnserve 创建多项目代码仓库 配置集中认...

ljpwinxp ⋅ 04/19 ⋅ 0

初学者 熟悉基本centos6.5命令 以及 如何搭建SVN+http访问

1、安裝SVN 2、svnserve --version 表示安裝成功 3、创建SVN版本库也就是SVN文件存放地址跟目录 4、创建版本库 5、当执行这个命令的时候 会出现提示 y/n 是否下载。你写上y就可以了。 然后当...

一个橙子HHH ⋅ 05/15 ⋅ 0

GIT科普系列1:git如何放弃本地working directory的修改,以及回滚

背景: 版本管理对开发人员来说至关重要,之前一直使用svn(主要是TortoiseSVN)作为团队配合的协作工具。但是自己相关的开源项目使用的是git发布在github上。由于项目自身的局限性,很少有大...

zssureqh ⋅ 2016/06/19 ⋅ 0

项目之间的公共库引用和联调方法整理

很多时候我们在搭建每个项目框架的时候,总会有些公共的类库需要引用,如果每个项目都引入源码,会出现这样的情况:某个项目更新了公共类库,那么每个项目引用过的都需要再拷贝代码同步(可以...

easonjim ⋅ 2016/09/18 ⋅ 0

CentOS 创建SVN 服务器,并且自动同步到WEB 目录

CentOS 创建SVN 服务器,并且自动同步到WEB 目录 标签: centossvnsubversion服务器 2013-12-06 10:09 5492人阅读 评论(0) 收藏 举报 分类: linux(5) 一、安装Subversion yum install su...

thinkyoung ⋅ 2015/12/30 ⋅ 0

CentOS7 下搭建svn服务器

一、yum安装subversion 1. 安装 2. 查看安装版本,检查安装是否成功 3. 查看安装位置 二、创建版本库 1. 创建用于存放版本库的目录 2. 创建svn版本库 3. 创建完后,版本库目录下会生成一些文...

Mr_ET ⋅ 05/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

内核线程、轻量级进程、用户线程

线程与进程概念 在现代操作系统中,进程支持多线程。 进程是资源管理的最小单元; 线程是程序执行的最小单元。 即线程作为调度和分配的基本单位,进程作为资源分配的基本单位 一个进程的组成...

117 ⋅ 19分钟前 ⋅ 0

elasticsearch2.4.6升级为elasticsearch-5.5.0的经历

将elasticsearch-5.5.0 中的配置 path.data 指向原来的数据路径 即 path.data: /usr/local/src/elasticsearch-2.4.6/data 注意: elasticsearch-5.5.0 需要将jdk版本升级到1.8...

晨猫 ⋅ 20分钟前 ⋅ 1

lvm讲解 磁盘故障小案例

1

oschina130111 ⋅ 24分钟前 ⋅ 0

那些提升开发人员工作效率的在线工具

本文转载自公众号 Hollis 作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的。 Hollis偏爱使用...

时刻在奔跑 ⋅ 36分钟前 ⋅ 0

restful风格 实现DELETE PUT请求 的web.xml的配置

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframe......

泉天下 ⋅ 41分钟前 ⋅ 0

Shell数组

Shell数组 Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。 bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数...

蜗牛奔跑 ⋅ 51分钟前 ⋅ 0

nmap为了开发方便 可以做简单的修改

因为nmap扫描是默认使用的是nse脚本,但是在开发的过程中需要修改后缀(主要是因为后缀为lua才能显示高亮,所以这里用一个取巧的办法) nse_main.lua文件中我们找到如下代码 local t, path = cn...

超级大黑猫 ⋅ 55分钟前 ⋅ 0

springmvc获取axios数据为null情况

场景:前端用了vue没有用ajax与后台通信,用了axios,但是在代码运行过程中发现axios传递到后台的值接受到数据为null。 问题原因:此处的问题在与axios返回给后台的数据为json类型的,后台接...

王子城 ⋅ 57分钟前 ⋅ 0

hadoop技术入门学习之发行版选择

经常会看到这样的问题:零基础学习hadoop难不难?有的人回答说:零基础学习hadoop,没有想象的那么难,也没有想象的那么容易。看到这样的答案不免觉得有些尴尬,这个问题算是白问了,因为这个...

左手的倒影 ⋅ 57分钟前 ⋅ 0

806. Number of Lines To Write String - LeetCode

Question 806. Number of Lines To Write String Solution 思路:注意一点,如果a长度为4,当前行已经用了98个单元,要另起一行。 Java实现: public int[] numberOfLines(int[] widths, Str...

yysue ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部