• [转]svn提交自动同步到web服务器


    参考博文:http://my.oschina.net/wddqing/blog/201567

    同步程序思路:用户提交程序到SVN,SVN触发hooks,按不同的hooks进行处理,这里用到的是post-commit,利用post-commit到代码检出到SVN服务器的本地硬盘目录,再通过rsync同步到远程的WEB服务器上。

    知识点:

    1、SVN的hooks

    # start-commit 提交前触发事务

    # pre-commit 提交完成前触发事务

    # post-commit 提交完成时触发事务

    # pre-revprop-change 版本属性修改前触发事务

    # post-revprop-change 版本属性修改后触发事务

    通过上面这些名称编写的脚本就就可以实现多种功能了,相当强大。

    2、同步命令rsync的具体参数使用

    3、具有基个语言的编程能力bash python perl都可以实现

    post-commit具体实现细节

    post-commit脚本

    编辑文件:sudo vim /home/svn/fitness/hooks/post-commit

    注意:编辑完成post-commit后,执行:sudo chmod 755 post-commit

    内容:

    #!/bin/sh

    export LANG=zh_CN.UTF-8

    sudo /usr/bin/svn update /var/www/www --username mirze --password 123456

    REPOS="$1"
    REV="$2"
    export LANG=zh_CN.UTF-8     #设定语言,根据系统语言设置,如果是UTF-8 就设置为 LANG=zh_CN.UTF-8
      
    SVN_PATH=/usr/bin/svn
    SVN_USER=user
    SVN_PASD=passwd
    WEB_PATH=/var/www/website/weixin
    WEB_IP="192.168.197.1"
    RSYNC=rsync
    LOG_PATH=/tmp/svn_update.log
      
    
    svn export "svn://192.168.197.1/test" $WEB_PATH --username $SVN_USER --password $SVN_PASD --force
    chown -R yzxx:yzxx /var/www/website/weixin/
    chmod -R 777 /var/www/website/weixin/#runtime

    这个是已提交就自动更新覆盖原有路径。

    还有一个是需要用户提交时输入关键字;例如:auto-load,才更新,哪个博文找不到了,找到后再贴上!

    linux下svn定时更新项目(这个作为参考,放到服务器上不合适,更新太费资源) http://blog.sina.com.cn/s/blog_920dea7a01014nm8.html

    有个复杂的还没看:http://os.51cto.com/art/201410/454887.htm

     SVN命令使用详解 http://blog.sina.com.cn/s/blog_963453200101eiuq.html

  • 相关阅读:
    排序简介
    排序集锦
    排序图解
    UVA 11809
    uva1588kickdown
    C++中输入输出的重定向
    uva1587BOX
    uva 10340 All in All
    uva 1368 DNA Consensus String
    彻底理解MapReduce shuffle过程原理
  • 原文地址:https://www.cnblogs.com/wuling129/p/4755706.html
Copyright © 2020-2023  润新知