• 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格式在提交

  • 相关阅读:
    tomcat窗口修改显示名字
    Windows Server 2012 安装oracle11g
    oracle查看和修改session和最大连接数
    ORA-12518 TNS:监听程序无法分发客户机连接的解决办法
    Oracle数据导入导出imp/exp :未知的命令开头。。。忽略了剩余的行
    用Dev C++编写第一个C语言程序
    PAT 甲级 1045 Favorite Color Stripe (30 分)(思维dp,最长有序子序列)
    PAT 甲级 1043 Is It a Binary Search Tree (25 分)(链表建树前序后序遍历)*不会用链表建树 *看不懂题...
    PAT 甲级 1044 Shopping in Mars (25 分)(滑动窗口,尺取法,也可二分)
    数据库设计的基本步骤
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15453911.html
Copyright © 2020-2023  润新知