如用svnsync 同步备份两台机器的svn 。(就以linux服务器到windows服务器为例子)

要同步的项目名称:source_svn

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

方法:

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

2.在目标服务器中建立svn版本库source_svnbak svnadmin create source_svnbak
 (svnadmin是svn的命令如果没有将svn目录放到环境变量需要在其目录里面使用该句若是windows可以直接点击右键创建svn)

3.需要在hooks中将pre_revprop_change.tmpl改为pre_revprop_change.bat并将内容清空然后输入exit 0

4.执行初始化

svnsync init svn://目标:ip:端口号/source_svnbak svn://192.168.16.199/source_svn

(执行到这一般会出现一个问题 svnsync: 认证失败)解决:需要把源文件source_svn中的conf拷贝到目标source_svnbak中替换conf文件

如果成功他会提示你输入用户名和密码(注:第一个是Administrator这个我觉得不用管随便输入,确定后才是你svn中填写的用户名和密码在conf中的文件有配置)

正确后,显示

Copied properties for revision 0.(复制版本 0 的属性。)

5

执行同步

svnsync sync svn://目标ip和端口号/source_svnbak --username xxxx  --password xxxx(一般端口号不用写除非端口号不是默认安装过的需要写,用户名和密码都在conf中有配置)

即svnsync sync 目标库

正确执行后,显示

复制版本号和提交数据等信息

6.更新同步

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

可拷贝post-commit.tmpl

cp post-commit.tmpl post-commit

然后

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

svnsync sync  --non-interactive svn://目标ip:(端口号)/source_svnbak --username xxx --password xxx

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

把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/stuartjing/article/details/6796763

用svnsync 同步备份 svn 版本库 从一台服务器到另一台服务器的更多相关文章

  1. 工作随笔——使用svnsync实时备份SVN版本库

    前段时间把SVN版本库从win迁移到了Linux上,没隔几天那台win的磁盘就严重坏道了....这TMD什么运气! 花费了点时间研究了下svn自己的同步工具.写个日志记录下. 注意:svnsync要求 ...

  2. 使用svnsync实时备份SVN版本库

    前段时间把SVN版本库从win迁移到了Linux上,没隔几天那台win的磁盘就严重坏道了....这TMD什么运气! 花费了点时间研究了下svn自己的同步工具.写个日志记录下. 注意:svnsync要求 ...

  3. 在windows上自动备份SVN版本库及定时删除

    下面的脚本是在windows SVN的备份策略,采用的是hotcopy的方法 方案一: 1.先创建一个fullBackup的脚本:fullBackup.bat echo off rem Subvers ...

  4. SVN版本库备份和恢复

    1.版本库备份 1.1.svnadmin dump方式备份 此方法借助的是Subversion官网推荐的svnadmin dump备份方式,它的优点是比较灵活,既可以进行全量备份又可以进行增量备份,并 ...

  5. svn版本库更新后自动同步到www

    注意:www目录一定要用SVN服务器 checkout出Repositories的代码 步骤: (1)新建www根目录 mkdir -p /data/www/lehuo (2)在www根目录下检出(c ...

  6. SVN版本库的备份及迁移

    备份某个版本库:打开控制台窗口 1.备份某个版本库: svnadmin dump myrepos > dumpfile //将指定的版本库导出成文件dumpfile eg:svnadmin du ...

  7. python实现备份gitlab版本库并更改文件名

    脚本的功能是实现备份gitlab版本库,并修改备份后的文件名,成功后发送邮件至相关负责人,脚本如下: #!/usr/bin/env python # -*- coding:utf-8 -*- impo ...

  8. TortoiseSVN和VisualSVN-Server的配置使用,外网访问SVN版本库

    TortoiseSVN和VisualSVN-Server的配置使用,外网访问SVN版本库 SVN客户端程序:TortoiseSVN SVN服务器程序:VisualSVN-Server ######## ...

  9. SVN版本库(访问权限)配置实例笔记

    http://blog.csdn.net/zjianbo/article/details/8578297 SVN版本库(访问权限)配置实例笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. ...

随机推荐

  1. FZU-2075 Substring(后缀数组)

    Description Given a string, find a substring of it which the original string contains exactly n such ...

  2. Java开发视频网站大概需要多少钱?

    这个还真不好说,需要看你对视频网站有什么要求?你的数据库选择的是什么型号的?需要开发几个页面?服务器是需要高端的还是中低端的?还有你对完成时间有什么要求,这些细节也是决定价格的关键因素. 上面这些因素 ...

  3. DataTables.js插入数据的两种方式

    一:采用数组的方式插入值 var tableData = []; ; ; $.each(data, function (i, d) { tableData.push([idxTable, d.stcd ...

  4. Openstack Ice-House 版本号说明--之中的一个 NOVA

    OpenStack Icehouse在4.17正式公布,看了下release note,发现改变不小,说明openstack还是在高速发展中,有不少新的特性增加,也有些小的剔除.以下就我所关注的项目做 ...

  5. AutoIt 函数学习之----WinWaitActive

    WinWaitActive函数 暂停脚本的执行直至指定窗口被激活(成为活动状态)为止. WinWaitActive ( "窗口标题"[, "窗口文本"[, 超时 ...

  6. 开源 java CMS - FreeCMS2.3 留言管理

    原文地址:http://javaz.cn/site/javaz/site_study/info/2015/22027.html 项目地址:http://www.freeteam.cn/ 留言管理 管理 ...

  7. [翻译]编写高性能 .NET 代码 第二章:垃圾回收 基本操作

    返回目录 基本操作 垃圾回收的算法细节还在不断完善中,性能还会有进一步的提升.下文介绍的内容在不同的.NET版本里会略有不同,但大方向是不会有变动的. 在.net进程里会管理2个类型的内存堆:托管和非 ...

  8. Linux如何管理目录和文件属性

    概述:在Linux文件系统的安全模型中,为系统中的文件(或目录)赋予了两个属性:访问权限和文件所有者,简称为“权限”和“归属”.其中,访问权限包括读取.写入.可执行三种基本类型,归属包括属主(拥有该文 ...

  9. python3编写网络爬虫18-代理池的维护

    一.代理池的维护 上面我们利用代理可以解决目标网站封IP的问题 在网上有大量公开的免费代理 或者我们也可以购买付费的代理IP但是无论是免费的还是付费的,都不能保证都是可用的 因为可能此IP被其他人使用 ...

  10. HDU 2955_Robberies 小偷抢银行【01背包】

    <题目链接> 题意: 先是给出几组数据,每组数据第一行是总被抓概率p(最后求得的总概率必须小于他,否则被抓),然后是想抢的银行数n.然后n行,每行分别是该银行能抢的钱数m[i]和被抓的概率 ...