rgsfew 发表于 2015-5-26 08:25:28

Linux CentOS下配置SVN+SVN勾子

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

1   配置SVN1.1安装SVN组件包使用yum安装svn所需的组件包

1
# yum –y install subversion




1.2配置SVN1.2.1创建svn库路径创建svn库路径,该目录后期提供用户文件写入和读取。

1
# mkdir -p /date/svn/




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

1
# svnadmin create /date/svn/




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





1
2
3
4
5
6

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




1.2.4用户权限配置1、创建svn访问用户

1
#vim /data/svn/passwd





1
2

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




2、配置用户访问权限

1
#vi /opt/svndata/repos1/conf/authz





1
2
3
4
5
6
7

admin = test
# harry_and_sally = harry,sally
[/]
@admin = rw

@admin = r




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




-d表示以daemon方式(后台运行)运行
-r /date/svn指定根目录是/date/svn
1.3配置钩子1.3.1配置版本检测工具自己利用python写了一个自动检测库里面文件版本的工具。代码如下:

1
2
3
4
5
6
7
8
9
10
11
# 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一次

1
# svn checkout svn://192.168.21.28/repos




2、编辑自动同步脚本

1
# vim svn_update.sh




代码如下

1
2
3
4
5
6
#!/bin/bash
/usr/bin/svn update/linshi/repos --username test --password test
if [ $? == 0 ]
then
         echo "ok" >> /tmp/z.out
fi




其中:/linshi/为存放目录(看环境而定)
   --usernametest 用户名为test
   --passwordtest 密码为test
3、修改权限

1
# chmod +x/root/svn_update.sh




4、配置计划任务
因脚本无法实现自动执行,故配置计划任务设置每分钟执行一次。

1
2
# crontab-e
*** */root/svn_update.sh> /dev/null2>&1







页: [1]
查看完整版本: Linux CentOS下配置SVN+SVN勾子