【发布时间】:2016-03-04 23:38:28
【问题描述】:
在我的公司中,开发人员可能会使用 tortoise svn 或 eclipse svn 或任何 svn 客户端,所以无论他们使用什么,我都希望强制他们在其中提供一些提交消息和 jira id。所以,我在 svn 服务器的 hooks 文件夹中使用了下面的预提交 shell 脚本并用乌龟测试,它不起作用。有人能帮我吗?
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook
CURL=/usr/bin/curl
JIRAURL=http://our.jira.url:8080/rest/api/latest/issue
# Make sure that the log message contains some text.
LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS")
echo ${LOGMSG} | grep "[a-zA-Z0-9]" > /dev/null || exit 1
check that log message starts with a JIRA ticket
should have format 'FOO-123: my commit message' or 'FOO-123 my commit message'
JIRAID=$(expr "${LOGMSG}" : '^\([A-Z]*-[0-9]*\)[: ].*')
if [[ "$JIRAID" == "" ]]
then
echo "No JIRA id found in log message \"${LOGMSG}\"" >&2
echo "Please use log message of the form \"JIRA-ID: My message\"" >&2
exit 1
fi
JIRAISSUE=$(${CURL} ${JIRAURL}/${JIRAID})
if [[ "${JIRAISSUE}" =~ "Issue Does Not Exist" ]]
then
echo "The JIRA id ${JIRAID} was not found" >&2
echo "Please use log message of the form \"JIRA-ID: My message\"" >&2
exit 1
fi
【问题讨论】:
标签: svn