你好,游客 登录 注册 搜索
背景:
阅读新闻

svnsync同步备份svn版本库

[日期:2013-02-23] 来源:blog.csdn.net/zinss26914  作者:zinss26914 [字体: ]

前言

大家都知道,代码对整个IT公司来说就是生命,小中型公司由于人员水平问题,大部分都采用svn进行代码的版本化控制,因此svn的版本库备份显得至关重要,这里我介绍svnsync实现svn的版本库同步,并且将实现过程脚本化

需求

同步的主版本库位于A服务器(192.168.1.1),基于apache进行访问控制,配置根目录下有test[1-9]这9个版本库,采用http协议进行访问

镜像版本库位于B服务器(192.168.1.2),基于apache进行访问控制,采用http协议进行访问

授权访问控制

由于主版本库和镜像版本库都采用libapache2-svn模块进行权限访问控制,因此我们首先需要提供一个svn检出用户,该用户对于A、B服务器上的所有版本库均具有读写权限

假设该svn检出用户为:

--username root
--password  root

镜像服务器创建目标版本库

创建版本库

镜像服务器B需要创建同主服务器A名称相同的版本库,这样才能进行同步备份

采用svnadmin create命令进行创建版本库

修改目标库的pre-revprop-change

源代码

#!/bin/bash

REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi

echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1

脚本阅读

如果修改的是svn:log属性,则返回0,允许修改,其它的属性则返回-1,不允许修改

我们需要修改版本库的所有属性,因此我们需要此脚本直接返回0成功,因此需要将exit -1改为exit 0

修改后代码

#!/bin/bash

REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi

echo "Changing revision properties other than svn:log is prohibited" >&2
exit 0

linux
相关资讯       svnsync  svnsync同步备份  svn备份 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款