zoukankan      html  css  js  c++  java
  • [svn hooks]识别指定目录svn更新钩子

    最近项目开发越发膨大,需要提交触发更新的目录越来越多,由于svn的钩子post-commit是针对只要svn库有提交更新,就会触发执行,
    以导致有时候提交svn的时候,要等个几秒钟的卡顿,等待svn的钩子更新,有时候还需要跨服器执行脚本,以上种种情况下来,svn就变得更加的龟速了。
    针对这种坑爹事情,想出个方案,在提交的时候,针对性的检查指定目录是否有提交更新,
    有调整的话才做进一步svn update的操作,避免执行的延时
    思路很简单...
    core code 奉上

    ## update path list
    ## 需要挂钩子的目录,把路径写入${SVN_LIST}变量里,以;分割即可
    MXWH5_SCRIPTS=/data/workspace/scripts
    PROJECT_SERVER_PATH=/data/workspace/server
    PROJECT_CLIENT_PATH=/data/workspace/client
    PROJECT_TOOLS_DEV_PATH=/data/workspace/tools/dev
    
    ## 需要刷新的路径列表
    SVN_LIST="${MXWH5_SCRIPTS};${PROJECT_SERVER_PATH};${PROJECT_CLIENT_PATH};${PROJECT_TOOLS_DEV_PATH}"
    
    ## svn update handle
    UPDATE_LIST=`echo ${SVN_LIST} | sed "s/;/ /g"`
    count=1
    INIT_PATH=/data/svn/hooks
    for each in ${UPDATE_LIST}
    do
        if [ -d ${each} ]; then
            ##  直接获取相应目录svn log 最近的版本号
            get_ver=$(svn log ${each} -r head:1 -l 1 | grep "r" | awk -F ' ' '{print $1}')
            cd ${INIT_PATH}
            check_file="${INIT_PATH}/versions/${count}"
            if [ ! -f ${check_file} ]; then
                echo "" > ${check_file}
            fi
            #echo "path: ${each}"
            #echo "get version is ${get_ver}"
            check_ver=`cat ${check_file}`
            #echo "check veriosn is ${check_ver}"
            if [ "${get_ver}" != "${check_ver}" ]; then
                #echo "${each} 版本号不同,触发update ==${get_ver}==${check_ver}=="
                /usr/bin/svn update --username svn_super --password `cat /data/save/password` ${each}
                ## 写入最近更新的版本号
                echo ${get_ver} > ${check_file}
            fi
        fi
        count=`expr ${count} + 1`
    done
    
    

    end. enjoy it! LOL

  • 相关阅读:
    [ES6] 15. Generators -- 2
    [ES6] 14. Generator -- 1. yield & next()
    [ES6] 13. Using the ES6 spread operator ...
    [ES6] 12. Shorthand Properties in ES6
    [ES6] 11. String Templates
    计算机-DB:OLAP(联机分析处理)
    计算机-事务:OLTP(联机事务处理过程)
    软件-数据库-分布式:HBase
    架构-分布式:Hadoop
    计算机-数据仓库:DW/DWH
  • 原文地址:https://www.cnblogs.com/x9mars/p/12488634.html
Copyright © 2011-2022 走看看