Ошибка при выполнении скрипта Hook - PullRequest
1 голос
/ 13 декабря 2011

Если я стремлюсь выполнить следующий скрипт

#!/bin/sh

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

# Make sure that the log message contains some text.
SVNLOOK=/usr/local/bin/svnlook
LOGMSG=`$SVNLOOK log -t “$TXN” “$REPOS” | find  *.cpp |grep “[a-zA-Z0-9]” | wc -c`

if [ "$LOGMSG" -lt 10 ]; then
echo -e “Please provide a meaningful comment when committing changes.” 1>&2
exit 1
fi

Я сталкиваюсь со следующей ошибкой:

D:\pg\trunk\pg.txt
D:\pg\trunk\pg.txt
Commit failed (details follow):
'pre-commit' hook failed with error output:
find: *.cpp: No such file or directory
svnlook: Can't open file 'svnrepos2/SVN_Scripts_POC./format': No such file or
 directory
.Please provide a meaningful comment when committing changes.
completed!

Почему я получаю сообщение о фиксации в этом случае?

1 Ответ

0 голосов
/ 13 декабря 2011

Ваш LOGMSG стандартный переменный захвата stdout (стандартный вывод), а не stderr.

Если не найдено .cpp, ваш стандартный вывод будет пустым, и ваше условие всегда будет проходить.

Сначала необходимо проверить, есть ли какие-либо .cpp файлы (например, [ "$?" = "0" ] будет проверять результат команды find), а затем, после захвата вывода find, перейти к wc и ваш тест.

...