хук pre-commit не проверяет шаблон

Я новичок в SVN и пытаюсь написать хук перед фиксацией, который проверяет сообщения фиксации по шаблону ^ABC-[0-9]+|^CONFIG:+|^MERGE:. Я использую этот код:

if [ `/svn/bin/svnlook log -t "$TXN" "$REPOS" | egrep -v "^ABC-[0-9]+|^CONFIG:+|^MERGE:"` ];
then
    echo ""
        exit 1
fi;

Но это не работает так, как мне нужно, и CL с сообщениями типа «Тест-тест» все равно можно коммитить. В чем проблема?

Заранее спасибо!


person user498274    schedule 20.02.2012    source источник
comment
Проблема в том, что grep представляет собой строки. Будет работать следующее: $SVNLOOK log -t $TXN $REPOS | egrep -q -v ^ABC-[0-9]+|^CONFIG:|^MERGE: если [ $? -экв 0];   -  person user498274    schedule 21.02.2012


Ответы (1)


Приведенный ниже скрипт позволяет выполнять коммиты только с требуемым шаблоном ^ABC-[0-9]+$|^CONFIG:|^MERGE:

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

# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook
$SVNLOOK log -t "$TXN" "$REPOS" | \
 grep -E "^ABC-[0-9]+$|^CONFIG:|^MERGE:" > /dev/null || exit 1

# Exit on all errors.
set -e


# All checks passed, so allow the commit.
exit 0
person Aimmal    schedule 24.07.2012