• linux安装配置SVN并设置钩子


    安装说明

    系统环境:CentOS-6.3
    安装方式:yum install (源码安装容易产生版本兼容的问题)
    安装软件:系统自动下载SVN软件

    检查已安装版本

    #检查是否安装了低版本的SVN

    1
    rpm -qa subversion

    #卸载旧版本SVN

    1
    yum remove subversion

    一.安装SVN

    1
    yum -y install subversion

    验证安装

    检验已经安装的SVN版本信息

    1
    svnserve --version

    代码库创建

    SVN软件安装完成后还需要建立SVN库

    1
    2
    mkdir -p /www/svndata
    svnadmin create /www/svndata/test

    执行上面的命令后,自动建立svndata库,查看/www/svndata/test 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

    配置代码库

    进入上面生成的文件夹conf下,进行配置

    1
    cd /www/svndata/test/conf

    用户密码passwd配置

    1
    2
    cd /www/svndata/test/conf
    vim passwd

    修改passwd为以下内容:

    1
    2
    3
    4
    [users]
    # harry = harryssecret
    # sally = sallyssecret
    cqh=123456

    权限控制authz配置

    1
    vim authz

    目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

    1
    2
    3
    #设置[/]代表根目录下所有的资源
    [/]
    cqh=rw

    服务svnserve.conf配置

    1
    vim svnserve.conf

    追加以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [general]
    #匿名访问的权限,可以是read,write,none,默认为read
    anon-access=none
    #使授权用户有写权限
    auth-access=write
    #密码数据库的路径
    password-db=passwd
    #访问控制文件
    authz-db=authz
    #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
    realm = My First Repository

    启动SVN

    1
    svnserve -d -r /www/svndata

    查看SVN进程

    1
    2
    [root@localhost conf]# ps -ef|grep svn|grep -v grep
    root     12538     1  0 14:40 ?        00:00:00 svnserve -d -r /www/svndata

    检测SVN 端口

    1
    2
    [root@localhost conf]# netstat -ln |grep 3690
    tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN

    停止重启SVN

    1
    2
    [root@localhost password]# killall svnserve    //停止
    [root@localhost password]# svnserve -d -r /www/svndata // 启动

    测试

    SVN服务已经启动,使用客户端测试连接。
    客户端连接地址:svn://xxx.xxx.xxx.xxx/test
    用户名/密码: cqh/123456
    测试创建文件夹等操作。

    二.设置钩子自动更新

    实现SVN与WEB同步,可以CO一个出来,也可以直接用自动更新web目录的方法,我们要在svn版本库中配置钩子来实现,就是创建一个post-commit的配置文件,对其进行简单的配置,简简单单的四步就可以实现Linux下SVN自动更新web目录配置。
    第一步:建立你的web程序目录

    1
    mkdir / var /www/html/test

    进入你建立的web程序目录(svn checkout可以简写为co)

    1
    2
    svn checkout svn: //localhost/svntest //不重命名文件夹,直接在当前目录下检出
    svn checkout svn: //localhost/svntest test //检出文件并且重命名文件夹

     第二步:在项目库的 hooks/ 目录下新建 post-commit 文件 【钩子脚本】

    添加脚本内容如下

    1
    2
    3
    4
    5
    export LANG=en_US.UTF-8
    SVN=/usr/bin/svn            #这里配置的是svn安装bin目录下的svn文件
    WEB=/ var /www/html/test      #要更新的目录
    $SVN update $WEB --username cqh --password 123456
    chown -R www:www  $WEB

    其中SVN=右边改成 svn 命令位置
    WEB=右边改成你实际的web目录

    第三步:让post-commit有执行的权限

    1
    chmod a+x post-commit

    第四步:这里就已经完成了,第四步就是测试了。

    说明:
    export LANG=en_US.UTF-8是为了解决svn post commit 中文乱码,设置本地化编码,因为我的系统为UTF8编码,其实SVN默认就是UTF-8编码,如果编码是GBK的话不设置将会出现错误,而执行不成功,错误标识为

    1
    svn: Can 't convert string from native encoding to ' GBK'

    /usr/bin/svn update --username cqh --password 123456 /var/www/html/test 执行更新操作
    如果提示:

    1
    post-commit hook failed ( exit code 255) with no output

    赋予post-commit文件可执行权限
    如果您的默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格式在提交

  • 相关阅读:
    新概念第二册(1)--英语口语听力课1
    外企面试课程(一)---熟悉常见的缩略词
    公司 邮件 翻译 培训 长难句 结课
    workflow
    公司 邮件 翻译 培训 长难句 20
    公司 邮件 翻译 培训 长难句 19
    Engineering Management
    公司 邮件 翻译 培训 长难句 18
    公司 邮件 翻译 培训 长难句 17
    第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15453911.html
Copyright © 2020-2023  润新知