zoukankan      html  css  js  c++  java
  • svn hook pre-commit

    #!/bin/bash
    export LANG="zh_CN.UTF-8" #确保中文日志显示正常,便于统计日志
    REPOS="$1"
    TXN="$2"
    #限制日志长度
    LENGTH=10
    #exit 0

    SVNLOOK="/usr/bin/svnlook"
    BLACKLIST=".* *.o *.chw *.pck ~$*"

    function error_exit(){
    echo -e "1.Not allowed empty log " >&2
    echo -e "2.Logs must be greater than ${LENGTH} characters or chinese" >&2
    exit 1
    }

    function blacklist_exit(){
    if [ ! -z "${INBLACKLIST}" ] ;then
    echo -e "some files in the blacklist , please cheack again !" >&2
    echo -e "blacklist: ${BLACKLIST}" >&2
    exit 1
    fi
    }

    # 获取字符数量(包括换行符)
    TEMP_LENGTH=`${SVNLOOK} log -t "${TXN}" "${REPOS}"|sed 's/s*$//g'|sed 's/^s*//g'| wc --chars`
    # 统计换行符
    TEMP_LINE=`${SVNLOOK} log -t "${TXN}" "${REPOS}"| wc --lines`
    # 真实字符数量
    LOGMSG_LENGTH=`expr ${TEMP_LENGTH} - ${TEMP_LINE}`

    ################################## 检查变更文件 ##################################
    changed_files=$(${SVNLOOK} changed -t "${TXN}" "${REPOS}")

    # 文件黑名单过滤
    # 过滤文件夹
    #INBLACKLIST=$(echo ${changed_files} | grep "/target/"`" #文件夹前后必须有/,否则匹配会有误伤
    #blacklist_exit

    ################################## 过滤prefix ##################################
    # 过滤所有以点开头的文件和文件夹
    INBLACKLIST=$(echo ${changed_files} | grep "/.")
    blacklist_exit
    # 过滤所有office的临时文件
    INBLACKLIST=$(echo ${changed_files} | grep "~\$")
    blacklist_exit

    ################################## 过滤suffix ##################################
    # 过滤文件尾缀,.chw, .o, .pck

    INBLACKLIST=$(echo ${changed_files} | grep ".chw$")
    blacklist_exit
    INBLACKLIST=$(echo ${changed_files} | grep ".o$")
    blacklist_exit
    INBLACKLIST=$(echo ${changed_files} | grep ".pck$")
    blacklist_exit

    # 判断日志长度是否满足要求
    if [ "${LOGMSG_LENGTH}" -lt ${LENGTH} ];then
    error_exit
    fi

    exit 0

  • 相关阅读:
    高性能Javascript 选择器API学习笔记
    Backbone学习笔记二 Events
    递归用函数、存储过程实现的效果
    用触发器实现动态新增列
    局域网自动备份删除
    游标变量用法经典
    如何区分大小写字母、全角半角
    列的分拆显示
    2005的行列转换
    批量分离和附加数据库
  • 原文地址:https://www.cnblogs.com/itzxy/p/7417623.html
Copyright © 2011-2022 走看看