【发布时间】:2017-12-15 09:13:14
【问题描述】:
我有一个预提交挂钩脚本来检查日志消息中的 TaskID。我无法弄清楚相同的逻辑。在 Highlighted **if** 语句中,我需要一个逻辑来检查第一行的第一个字母是否是 TaskID:(多位数字)-(空格)(日志消息)
预提交钩子:
REPOS="$1"
TXN="$2"
# Check log message for proper task/bug identification
if [ -x ${REPOS}/hooks/check_log_message.sh ]; then
${REPOS}/hooks/check_log_message.sh "${REPOS}" "${TXN}" 1>&2 || exit 1
fi
exit 0
=======>>>check_log_message.sh
#!/bin/bash
REPOS="${1}"
TXN="${2}"
SVNLOOK=/usr/bin/svnlook
LOG_MSG_LINE1=`${SVNLOOK} log -t "${TXN}" "${REPOS}" | head -n1`
**if (echo "${LOG_MSG_LINE1}" | egrep '^[T][a][s][k][I][D][:]?[-][1-9]
[\s]*.*$' > /dev/null;) \
|| (echo "${LOG_MSG_LINE1}" | egrep '^[a-zA-Z]+[-][1-9][0-9]*[:]?[\s]*.*$'
> /dev/null;)**
then
exit 0
else
echo ""
echo "Your log message does not contain a TaskID(or bad format used)"
echo "The TaskID must be the first item on the first line of the log
message."
echo ""
echo "Proper TaskID format--> TaskID:xxx- 'Your commit message' "
exit 1
fi
【问题讨论】:
-
我也在寻找一种仅在 svn 主干上而不是在分支/标签上实现此功能的方法。如果没有关联的TaskID,我还想要一个出路,那么它也应该接受[TaskID:0000(四个零)-提交消息]
标签: shell svn pre-commit-hook