检查svn 提交时log格式的脚本pre-commit

pre-commit文件放到 SVN repository下hooks目录里
需要设为可执行

Linux环境下的

#!/bin/sh


REPOS="$1"
TXN="$2"
TYPE="$3"
# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook

if test -z "$TYPE" ; then
TYPE="-t"
fi
#$SVNLOOK log -t "$TXN" "$REPOS" | \
# grep "[a-zA-Z0-9]" > /dev/null || exit 1
look() {
$SVNLOOK "$@" "$TYPE" "$TXN" "$REPOS"
}

LOGMSG=`look log`

if echo $LOGMSG | grep '.' > /dev/null; then
NOT_EMPTY=1
else
echo "Message must be filled">&2
exit -2
fi

#echo $REPOS >&2
#look changed>&2
#exit 1

IN_BRANCH=0
#echo $REPOS | grep -iE "^/var/www/svn/test/branches"
CHANGES=`look changed`
#echo $CHANGES >&2
for f in $CHANGES ;do
#echo $f>&2
echo $f | grep -iE "^branches/br130609" > /dev/null
if [ $? -eq 0 ]; then
IN_BRANCH=1
fi
done
#echo $IN_BRANCH>&2
#exit 1

if [ $IN_BRANCH -eq 1 ]; then

echo $LOGMSG | grep -iE "^(new|add|improve|refactor|ci|fix|modify)\s*:\s*[0-9\.]+[mh]\s*:.+" >/dev/null
CHECKRE1=$?

echo $LOGMSG | grep -iE "^(bug|bugfix)\s*:\s*[0-9\.][mh]\s*:\s*((BUMBLEBEE-[0-9]+)+,*)+\s*:.*" >/dev/null
CHECKRE2=$?

if [ $CHECKRE1 -ne 0 ] && [ $CHECKRE2 -ne 0 ]; then
echo " Wrong format, please write according to:http://wiki.cntnsoft.int/pages/viewpage.action?pageId=20643842 ">&2
exit -3
fi

fi

if look changed | grep '^A ' | sed -r 's#^A +##' | grep -iE '\.(ncb|opt|plg|suo|aps|bsc|idb|obj|pcc|pch|pdb|sbr|exe|tmp|ilk|o|so|a|class|zip|log)$|~$|^(Debug|Release|Debug_Ts|Release_Ts|Thumbs\.db)$|(^\.)' 1>&2 ; then
echo "Including not permitted file: ncb|opt|plg|suo|aps|bsc|idb|obj|pcc|pch|pdb|sbr|exe|tmp|ilk|o|so|a|class|zip|log">&2
exit 1
fi

# Check that the author of this commit has the rights to perform
# the commit on the files and directories being modified.
#commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1

# All checks passed, so allow the commit.
exit 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值