码迷,mamicode.com
首页 > 系统相关 > 详细

Linux CentOS下配置SVN+SVN勾子

时间:2015-05-25 20:34:30      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:linux centos下配置svn+svn勾子

环境介绍:

操作系统: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目录设置权限

权限主体可以是用户组、用户或*,用户组在前面加@*表示全部用户。权限可以是wrwr和空,空表示没有任何权限。

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



                                                  -----------小欢原创


本文出自 “小欢” 博客,请务必保留此出处http://x1aoxiao.blog.51cto.com/1836651/1655046

Linux CentOS下配置SVN+SVN勾子

标签:linux centos下配置svn+svn勾子

原文地址:http://x1aoxiao.blog.51cto.com/1836651/1655046

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!