阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux CentOS下配置SVN+SVN勾子

127次阅读
没有评论

共计 2340 个字符,预计需要花费 6 分钟才能阅读完成。

环境介绍:
操作系统:CentOS release 6.5 (Final) 64 位
网络环境:内网

1  配置 SVN
1.1  安装 SVN 组件包
使用 yum 安装 svn 所需的组件包
# yum –y install subversion

1.2  配置 SVN
1.2.1  创建 svn 库路径
创建 svn 库路径,该目录后期提供用户文件写入和读取。
# mkdir -p /date/svn/

1.2.2  创建 SVN 版本库
使用特定的命令来创建版本库,创建成功后该目录会出现 SVN 配置文件。
# svnadmin create /date/svn/

1.2.3  定义配置文件
#vim /opt/svndata/repos1/conf/svnserve.conf

[general]
anon-access = none
auth-access = write
password-db = passwd  #定义用户密码的配置文件
authz-db = authz      #定义用户权限的配置文件
realm = svn

1.2.4  用户权限配置
1、创建 svn 访问用户
#vim /data/svn/passwd

[users]
test = test              创建了一个叫 tset 密码为 test 的用户

2、配置用户访问权限
#vi /opt/svndata/repos1/conf/authz

[groups]
admin = test
# harry_and_sally = harry,sally
[/]
@admin = rw
[repos1:/abc/aaa]
@admin = r

版本库目录格式:
[< 版本库 >:/ 项目 / 目录]    #是以项目名作为第一个单位。试想肯定是以项目为单元的
@< 用户组名 > = < 权限 >
< 用户名 > = < 权限 >
其中,方框号内部分可以有多种写法:
/, 表示根目录及以下。根目录是 svnserve 启动时指定的,我们指定为 /opt/svndata。这样,/ 就是表示对全部版本库设置权限。
repos1:/, 表示对版本库 1 设置权限
repos2:/abc, , 表示对版本库 2 中的 abc 项目设置权限
repos2:/abc/aaa, , 表示对版本库 2 中的 abc 项目的 aaa 目录设置权限
权限主体可以是用户组、用户或 *,用户组在前面加 @,* 表示全部用户。权限可以是 w、r、wr 和空,空表示没有任何权限。
1.2.5  启动 SVN
# svnserve -d -r /date/svn/

- d 表示以 daemon 方式(后台运行)运行
-r /date/svn 指定根目录是 /date/svn
1.3  配置钩子
1.3.1  配置版本检测工具
自己利用 python 写了一个自动检测库里面文件版本的工具。代码如下:
# vim /date/svn/hooks/gouzi.py
#!/usr/bin/env python
if __name__==’__main__’:
  importsys,string
  try:
    logfile= open(‘/tmp/python.out’,’a+’)
  logfile.write(“this is python hook”)
  logfile.close()
  except:
    exit(1)
  sys.exit(0)

此工具需放在库目录中的 hooks 目录中。
1.3.2  配置 UPDATE 脚本
1、首先在客户端上手工 checkout 一次
# svn checkout svn://192.168.21.28/repos

2、编辑自动同步脚本
# vim svn_update.sh

代码如下
 #!/bin/bash
/usr/bin/svn update  /linshi/repos –username test –password test
if [$? == 0]
  then
        echo “ok” >> /tmp/z.out
fi

其中:/linshi/ 为存放目录(看环境而定)
    –username  test 用户名为 test
    –password  test 密码为 test
3、修改权限
# chmod +x  /root/svn_update.sh

4、配置计划任务
因脚本无法实现自动执行,故配置计划任务设置每分钟执行一次。
# crontab  -e
*  *  * *  /root/svn_update.sh  > /dev/null  2>&1

Ubuntu 14.04 下搭建 SVN 服务器 svn://  http://www.linuxidc.com/Linux/2015-01/111956.htm

CentOS 6.2 SVN 搭建 (YUM 安装) http://www.linuxidc.com/Linux/2013-10/91903.htm

CentOS 6.5 部署 Apache+SVN  http://www.linuxidc.com/Linux/2013-12/94315.htm

Apache+SVN 搭建 SVN 服务器 http://www.linuxidc.com/Linux/2013-03/81379.htm

Windows 下 SVN 服务器搭建和使用 + 客户端重新设置密码 http://www.linuxidc.com/Linux/2013-05/85189p5.htm

Ubuntu Server 12.04 安装 SVN 并迁移 Virtual SVN 数据 http://www.linuxidc.com/Linux/2013-05/84695.htm

Ubuntu Server 搭建 svn 服务以及迁移方法 http://www.linuxidc.com/Linux/2013-05/84693.htm

更多 CentOS 相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-05/118086.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2340字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中