"Added/Changed/Fixed/Deleted"문자열이 커밋 로그 메시지에 있는지 확인해야합니다. svn precommit 후크를 쓰고 있는데 예상 된 커밋 주석은 메시지에서이 4 개의 문자열 중 하나를 가져야합니다.한 줄에 여러 문자열을 사용하는 grep
내가 사용하고있는 코드는
$SVNLOOK log "$REPOS" -t "$TXN"
나에게 사용자가 입력 한 메시지를 저지를 줄 것이다, 위의 코드에서
REPOS=$1
TXN=$2
SVN="/usr/bin/svn";
SVNLOOK="/usr/bin/svnlook";
$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
다음과 같다. 이제 메시지에 "Added, Changed, Fixed, Deleted"문자열이 있는지 확인해야합니다. 이다 ,
if (any of the above 4 strings are not present),
exit 1
나는
$($SVNLOOK log -t "$TXN" "$REPOS" | grep -q "Added\|Changed\|Fixed\|Deleted"|)
으로 시도했지만 작동이있을 것 같지 않습니다. 이 같은
egrep -q -i "added|changed|fixed|deleted"
"작동하지 않는 것"이 문제를 전시 매우 유용한 진단, 제공하시기 바랍니다 최소한의 예가 아니다. – Thor