问答详情
源自:-

SVN 更新代码 到WEB目录

SVN客户端与服务端 可以正常使用了

但是如何将SVN服务器的代码更新到WEB目录中呢 老师


提问者:牛哥是光头 2018-11-19 17:57

个回答

  • XLSW
    2019-01-05 20:11:04

    以centos 7.6+svn 1.11为例。

    第一步,进入web根目录/data/wwwroot/test,并svn检出:

    # cd /data/wwwroot/test
    # svn checkout svn://127.0.0.1/project .

    注意project后面是空格和点。

    第二步,进入版本库文件夹内的hooks文件夹,如/data/svndata/project/hooks,复制post-commit.tmpl文件为post-commit,设定权限为755,编辑文件,删除最底下代码:

    REPOS="$1"
    REV="$2"
    TXN_NAME="$3"
    
    mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf

    加入如下代码:

    #!/bin/sh
    REPOS="$1"
    REV="$2"
    export LANG="zh_CN.UTF-8"   #设定语言
    SVN_PATH=/usr/bin/svn   #svn路径
    WEB_PATH=/data/wwwroot/test   #web目录
    SVN_USER=user   #svn账号
    SVN_PASS=password   #svn密码
    LOG_PATH=/tmp/svn_update_test.log   #日志位置
    echo `whoami`,$REPOS,$REV >> $LOG_PATH
    sudo -u www $SVN_PATH update --username $SVN_USER --password $SVN_PASS $WEB_PATH --no-auth-cache >> $LOG_PATH
    #sudo -u www 中的用户名www请与web目录的文件所有者对应
    #“user”和“123456”分别为svn的账号和密码

    第三步,重启svnserve:

    #killall svnserve
    #svnserve -d -r /data/svndata

    第四步,在SVN客户端提交,然后查看web目录是否同步更新~

    按上述情况一般不会出现错误

    结束。