`
kankan1218
  • 浏览: 277623 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

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

阅读更多

 

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


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

要同步的项目名称:svn_repos

svn 版本库14 以上
源目录:            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 正确解释也会重复出现该错误 .

分享到:
评论

相关推荐

    svnsync同步增量备份

    本文将详细介绍如何在 Linux 系统下使用 SVN 自带的 `svnsync` 工具进行异地同步增量备份。 #### 二、准备工作 在开始备份之前,我们需要准备以下几项工作: 1. **环境准备**:确保源服务器和备份服务器都已安装 ...

    利用svnsync同步SVN版本库

    利用svnsync同步SVN版本库,将之前主库上的SVN数据迁移到VisualSVN上,然后在实现版本库的远程自动备份,版本库备份到另一台机器上。

    svn定时同步备份.txt

    SVN同步备份是指通过一定的机制实现主版本库(源库)与备用版本库(备份库)之间的数据同步,确保两份数据的一致性,从而提高数据的安全性和可靠性。 #### 二、SVN同步备份流程 根据题目中提供的内容,我们可以将...

    SVNsync配置库同步说明

    ### SVNsync配置库同步知识点详解 #### 一、SVNsync简介 SVNsync是一款用于Subversion(简称SVN)仓库之间同步的工具。它能够帮助用户实现从一个SVN仓库到另一个SVN仓库的数据复制,这对于需要在多个服务器之间...

    svn服务用svnsync命令双机热备

    在SVN环境中实现双机热备,主要是利用`svnsync`工具进行数据同步,保证两台服务器上的版本库保持一致。 #### 实现步骤 1. **创建目标目录** 首先在备用服务器上创建一个与主服务器版本库结构相同的目录,并初始...

    svnsync.sh svnhotcopy_daily.sh svn 备份

    本主题主要关注如何利用`svnsync.sh`和`svnhotcopy_daily.sh`这两个脚本来实现SVN仓库的备份策略,确保数据的安全性和可恢复性。 首先,我们来看`svnsync.sh`。这是一款用于SVN仓库之间镜像复制的工具,常用于实现...

    SVN双机同步备份

    4. 执行同步svnsync sync:使用svnsync sync命令来同步备份机的代码仓库与源代码的变化。 源机配置 1. 创建post-commit.bat文件:在hooks目录下创建一个名为post-commit.bat的文件,用于触发每次提交代码后的同步...

    SVN备份操作(包括完全备份,增量备份和同步版本库)

    1. **使用`svnadmin dump`和`svnadmin load`命令**:这两个命令可以用来导出和导入版本库数据,从而实现版本库间的同步。 2. **自动化同步**:可以编写脚本来定期执行这些命令,或者利用专门的同步工具(例如rsync)...

    互不连接的两个SVN双向同步方法

    虽然这种方法比较繁琐,但在网络隔离的情况下,它是实现两个SVN仓库双向同步的一种实用策略。不过,它也存在一定的风险,比如数据一致性问题和人工错误。因此,如果条件允许,更推荐寻找自动化或第三方工具来实现更...

    SVN版本库备份操作脚本

    同步备份是指在多个地点维护版本库的副本,这样即使一个位置出现问题,其他地方仍有可用的数据。这可以通过将备份文件复制到另一台服务器或者使用版本控制软件的复制功能来实现。 在实际应用中,备份策略应根据业务...

    svn代码库如何备份到本地

    `svnsync`是一个用于在两个SVN仓库之间复制数据的工具,它可以实现增量同步,即只同步自上次同步以来发生改变的数据。 **操作命令**: 1. 初始化同步源: ```cmd svnsync init file:///d:/beifen/CYMS svn://192....

    SVN_自动同步备份环境搭建笔记

    - **工作原理**:通过将一个版本库的修订版本“重放”到另一个版本库中来实现同步,确保两个版本库的修订版本一致。 #### 五、svnsync最佳实践 - **同步用户的权限**:同步用户需要对版本库具有完全的读/写权限。 ...

    linux下\svn备份与同步

    同步仓库则通过 `svnsync sync` 命令实现,它将更新本地仓库以反映远程仓库的最新变化。这个命令需要定期执行以保持同步。 对于svn仓库的备份,有两种主要方法:压缩备份和不压缩备份。使用 `svnadmin dump` 命令...

    windows下svn异地备份与还原

    总的来说,Windows下的svn异地备份与还原涉及到多个层面的操作,包括本地备份、热备份和svnsync镜像备份。正确实施这些策略,可以有效地保护你的svn仓库免受意外数据损失的影响。文件"svn备份与还原.txt"很可能是...

    SVN服务器几种备份策略.docx

    svnsync主要用于创建两个镜像库,实现双机实时备份。在1.4及以上版本的SVN中可用。虽然无法轻松地恢复到特定时间点,但它提供了一种持续同步的备份机制。操作相对复杂,但当主库出现问题时,可以迅速切换到镜像库。...

    Svn最强大的Windows下实现自动全量增量备份和异地备份,一切自动化完成

    1)SVN目录的全备份(1周或1个月备份1次,由windows计划来调度执行); 2)SVN增量备份(每日备份1次,由windows计划来调度执行)。 2. SVN备份流程 上述2类备份分别进行的自动备份流程如下: 1)通过windows定时...

    LINUX SVN双机热备份shell脚本 附配置文档

    在本例中,`svnsync.sh`是执行同步的shell脚本,它会定期运行,确保主服务器和从服务器的版本库保持一致。 2. **配置过程**:在开始同步前,需要在主服务器上初始化同步,然后在从服务器上配置为同步源。这通常涉及...

    svn远程备份

    使用svnsync备份很简单,步骤如下:首先确保版本库建好并且已经与Apache发生联系。然后,使用同步命令进行备份。具体命令可以根据实际环境和需求进行设置。 知识点五:遇到的问题与解决方法 在实施svn远程备份的...

    实现VisualSVN Server主从同步备份.pdf

    6. 在从服务器上用命令行初始化库,命令为svnsync init ***\Repositories\test ***。 7. 在从服务器上执行全局同步命令,命令为svnsync sync ***。这个命令只需运行一次,如果从服务器与主服务器版本不一致时,再...

Global site tag (gtag.js) - Google Analytics