微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

[svn hooks]识别指定目录svn更新钩子

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

原文地址:https://www.cnblogs.com/x9mars/p/12488634.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐