• centos7 添加svn


    预期目的:

    1、仓库放在 /var/svn/ 目录下,并且仓库名为 project

    2、创建用户组lsgogroup,该组下添加两个成员lsgoweb1、lsgoweb2,密码直接用用户名,两用户可以checkout代码和提交代码

    3、利用SVN的钩子实现当仓库的代码更新的时候自动同步至我们的web目录,在这里,我的web目录在 /home/www/ 下

    一、搭建svn环境并创建仓库:

    1、安装Subversion:

    yum install -y subversion

    2、检测是否安装成功(查看svn版本号)

    svnserve --version

    3、创建版本库

    //先建目录
    mkdir /var/svn
    cd /var/svn
    //创建版本库
    svnadmin create /var/svn/project
    cd project
    //会看到自动生成的版本库文件
    conf  db  format  hooks  locks  README.txt

    至此,svn环境搭建成功。

    二、创建用户组及用户:

    1、 进入版本库中的配置目录conf,此目录有三个文件: svn服务综合配置文件(svnserve.conf)、 用户名口令文件(passwd)、权限配置文件(authz)。

    2、修改权限配置文件:vim authz

    3、配置用户名命令文件:vim passwd

    4、配置SVN服务综合配置文件svnserve.conf

    //找到以下配置项,将前面的#号去掉,然后做相应的配置
    anon-access = none  //匿名用户访问权限:无
    auth-access = write     //普通用户访问权限:读、写
    password-db = passwd        //密码文件
    authz-db = authz        //权限配置文件
    realm = /var/svn/project    //版本库所在1

    注意:所有以上的配置项都需要顶格,即前面不能预留空格,否则报错

    5、启动svn服务:

    svnserve -d -r /var/svn

    如果提示:

    svnserve: E000098: Can't bind server socket: Address already in use

    证明现在svn已经被启动了,由于我们修改了配置文件,因此要重启svn服务

    //查看svn服务详情
    ps aux | grep svn
    //将svn服务强制停止  其中790为svn服务的ID号,-9是kill的参数
    kill -9 790

    或者用

    killall svnserve

    再运行 svnserve -d -r /var/svn,进行启动服务

    6、测试服务器:

    //我们在web目录测试(/home/www)
    cd /home/www
    svn co svn://localhost/project

    如果提示:Checked out revision 1.  表示checkout成功

    我们添加新文件来测试是否提交成功

    cd /home/www
    touch index.php
    svn add index.php   //成功的话会显示  A index.php
    svn commit index.php -m "测试提交文件"

    假如最后提示:

    Adding         index.php
    Transmitting file data .
    Committed revision 2.

    则表示我们svn服务器搭建成功!文件已经能够推送了。

    7、本地拉取、推送

    在本地首先要安装SVN吧,具体百度。。。

    填写信息:

    点击ok,提示输入用户名和密码

    就填刚才我们创建的lsgoweb1或lsgoweb2,和对应的密码即可。

    三、实现svn更新自动同步到web目录:

    1、在web目录中checkout版本库

    这一步算是比较关键的一步了,当时我搭建的时候试了无数次,就是缺少了这一步。把刚才checkout的版本库删掉,我们来一次比较正式的checkout:

    svn co svn://localhost/project /home/www --username lsgoweb1(SVN账号) --lsgoweb1(SVN密码)

    进入/var/svn/project/hooks下,建立post-commit文件:

    cd /var/svn/project/hooks
    vim post-commit
    
    //在该文件里添加如下代码,保存
    #!/bin/sh
    #设定环境变量,如果没有设定可能会出现update报错
    #设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK
    export LANG=en_US.utf8
    SVN_PATH=/usr/bin/svn   //这里不用改
    WEB_PATH=/home/www  //web目录,如果你的不同,可以改
    //这里的用户随便一个就好
    $SVN_PATH update $WEB_PATH --username 'lsgoweb1' --password 'lsgoweb1' --no-auth-cache

    保存退出。

    修改post-commit用户为www目录用户

    chown apache:apache post-commit     //我的 /home/www 的用户组和所有者都是apache

    给post-commit 执行权限:

    chmod 755 post-commit

    麻蛋,终于写完了。。。。

    转自:http://www.centoscn.com/CentosServer/ftp/2016/0515/7236.html

  • 相关阅读:
    unicodedata.normalize()/使用strip()、rstrip()和lstrip()/encode和decode 笔记(具体可看 《Python Cookbook》3rd Edition 2.9~2.11)
    split与re.split/捕获分组和非捕获分组/startswith和endswith和fnmatch/finditer 笔记
    比较字典推导式/dict()/通过键来构造的字典的速率 笔记
    itertools.groupby()/itertools.compress() 笔记
    operator笔记
    slice.indices()/collections.Counter笔记
    deque/defaultdict/orderedict/collections.namedtuple()/collections.ChainMap() 笔记
    实践中总结出来对heapq的一点理解
    学习笔记(42)- 端到端对话到底是什么
    机器翻译-领域专家
  • 原文地址:https://www.cnblogs.com/liuwenbohhh/p/6189316.html
Copyright © 2020-2023  润新知