【问题标题】:How to replace the existing svn comment template with the new one如何用新的替换现有的 svn 评论模板
【发布时间】: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


【解决方案1】:

这是一个简单的预提交钩子,只允许使用 cmets 提交。

#!/bin/sh

REPOS="$1"
TXN="$2"

SVNLOOK=/usr/bin/svnlook
$SVNLOOK log -t "$TXN" "$REPOS" | \
grep "[A-Z]*-[0-9]" > /dev/null

GREP_STATUS=$?
if [ $GREP_STATUS -ne 0 ]
 then
  echo "Commit denied" 1>&2
  echo "Please write a comment to do the commit like" 1>&2
  echo "JIRA-TICKET: Message" 1>&2
  echo "Eg: FOO-123: Fix login bug" 1>&2
  exit 1
fi
exit 0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 2011-03-26
    • 2012-02-23
    • 1970-01-01
    相关资源
    最近更新 更多