zoukankan      html  css  js  c++  java
  • 搭建subversion 服务器,并自动部署项目

    1 subversion目录文件说明:

    *dav目录:是提供apache与mod_dav_svn使用的目录,让他们存储内部数据
    *db目录:就是所有版本控制的数据存放文件
    *hooks目录:放置hook脚本文件的目录
    *locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端
    *format文件:是一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号
    *conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)
     
    安装:
    1 检查是否已安装
    rpm -qa subversion

    如果有卸载旧版本:
    yum remove subversion

    2 安装

    yum install subversion

    3 检查是否安装成功

    svnserve --version

    配置:

    1 新建一个目录用于存储SVN所有文件

    # mkdir /home/svn

    2 新建一个版本仓库

    # svnadmin create /home/svn/project

    3 添加用户
    要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password”的条目就可以了。为了测试,我添加了如下内容:
    [users]
    # harry = harryssecret
    # sally = sallyssecret
    pm = pm_pw

    4 修改svnserve.conf

    [general]
    anon-access = read
    auth-access = write
    password-db = passwd
    authz-db = authz
    

    5 修改权限认证文件  

    authz:
    
    [groups]
    
    [/]
    
    username= rw
    
    * =
    

    6 启动服务器

    # svnserve -d -r /home/svn

    注:查看服务及重启服务

    ps -ef|grep svnserve
    # ps -aux|grep svnserve
    # kill -9 ID号
    # svnserve -d -r /home/svn

    扩展配置:

    1 设置SVN自启动

    ---------------------

    在/etc/rc.d/rc.local文件中增加这么一行

    svnserve -d -r /home/svnroot/svndata &

    2 检出一份代码

    把SVN的代码检出一份

    svn co svn://xx.xx.xxx.xxx/repos1 /home/svnroot/checkout/ --username zmk

    配置项目自动部署:(部署目录必须先检出代码,在设置自动更新)

    为了可以在修改完代码提交到SVN服务器后,WEB服务器直接同步.需要配置SVN的钩子,打开hooks目录,

    可以看到有一个post-commit.tmpl文件,这是一个模板文件,

    复制一份放在此目录下,命名为post-commit,并将其用户组设为www,并设置为可执行:

    chown www:www post-commit

    chmod +x post-commit这样就有了访问www目录的权限。

    里面原有的代码全部注释掉.这里可以执行shell命令,每次commit完成后都会调用此文件.

    我的文件内容为:

    #!/bin/sh

    #设定环境变量,如果没有设定可能会出现update报错

    export LANG=zh_CN.UTF-8
    
    REPOS="$1"
    
    REV="$2"
    
    SVN_PATH=/usr/bin/svn
    
    WEB_PATH=/web/project
    
    LOG_PATH=/tmp/svn_update.log
    
    #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    
    echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    
    echo `whoami`,$REPOS,$REV >> $LOG_PATH
    
    $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    
    chown -R www:www $WEB_PATH

    说明:

    1、#!/bin/sh 说明是执行shell命令

    2、export LANG=zh_CN.UTF-8 是为了解决svn post commit 中文乱码。

    如果你是GBK编码可能会提示:Error output could not be translated from the native locale to UTF-8

    这是客户端和服务器编码的问题,默认是utf-8,可尝试设置export LANG=zh_CN.GBK或者export LANG=en_US.UTF-8

    #执行更新操作

    3、svn update –username 你版本库的用户名 –password 用户名的密码 svn://你的IP地址:端口/repos/project /web/project

    4、chown -R www:www $WEB_PATH 更改文件夹属主为适合Web Server的

    里面原有的代码全部注释掉.这里可以执行shell命令,每次commit完成后都会调用此文件。

    安装

    yum install subversion
  • 相关阅读:
    Do I Have an RNG(Random Number Generator)?
    网页上判断屏幕分辨率
    〖005〗数据监控
    How to use Emerge
    〖006〗开发语言
    Build patched kernel
    GNAP 1.5.1
    五一长假日记(1)
    SQL Server各种日期计算方法
    HOWTO Design your own Framebuffer Splash
  • 原文地址:https://www.cnblogs.com/sien6/p/6910909.html
Copyright © 2011-2022 走看看