svn コミット メッセージで次の形式を期待しています。
説明: (変更の説明)
エンティティ: (変更要求番号)
コミット中のコメントが上記の形式に従わない場合、エラー メッセージがスローされます。アイデアは、コミット メッセージでキー文字列 "Description" と "Entity" をチェックすることです。メッセージ内のコメントの存在も確認しています。
次のコードを使用していますが、文字列「説明」のチェックが機能していません。(null コメントのチェックは正常に機能しています。) 私が間違っている可能性があることを教えてください。
REPOS=$1
TXN=$2
LOG="/home/svn/testSVN/logs/precommithook.log"
GREP=/bin/grep
ECHO=/bin/echo
SVN="/usr/bin/svn";
SVNLOOK="/usr/bin/svnlook";
#Logs the current Transaction ID
"${ECHO}" "Transcation Id ${TXN}" >> "$LOG"
$SVNLOOK log "$REPOS" -t "$TXN" | grep "[a-zA-Z0-9]" > /dev/null
GREP_STATUS=$?
if [ $GREP_STATUS -ne 0 ]
then
"${ECHO}" "No Log comments present" >> "${LOG}"
echo "Your commit has been blocked because you didn't give any log message" 1>&2
echo "Please write a log message describing the purpose of your changes and" 1>&2
echo "then try committing again. -- Thank you" 1>&2
exit 1
fi
$SVNLOOK log "$REPOS" -t "$TXN" | grep [a-zA-Z0-9] | grep -q "Description" > /dev/null
GREP_DESCRIPTION_STATUS=$?
if [ $GREP_DESCRIPTION_STATUS –ne 0 ]
then
"${ECHO}" "Description not found in the comment" >> "${LOG}"
echo "Your commit has been blocked because you didn't give the Description in your commit message" 1>&2
echo "Please write a log message describing the purpose of your changes and" 1>&2
echo "then try committing again. -- Thank you" 1>&2
exit 1
fi
exit 0
簡単な grep "Description" と grep -w "Description" も試しました。それでも取れませんでした。