SVN pre-commit hook linux - PullRequest
       49

SVN pre-commit hook linux

0 голосов
/ 23 мая 2018

Я пытаюсь создать ловушку перед фиксацией, которая будет искать передаваемый файл в сравнении с заранее определенной строкой, и если он будет содержать ее, то перед фиксацией произойдет ошибка.

У меня есть следующее после попыткидля поиска в Интернете:

#!/bin/sh
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook 
$SVNLOOK diff "$REPOS" -t "$TXN" | [[ grep "^+builder_group">/dev/null exit 0 ]]  ||     
echo "File contains builder_group commit failed"  >&2
exit 1

вот ошибка, которую я получаю:

svn: E165001: Commit failed (details follow):
svn: E165001: Commit blocked by pre-commit hook (exit code 2) with output:
/etc/svn/testrepo/hooks/pre-commit: line 7: conditional binary operator expected 
/etc/svn/testrepo/hooks/pre-commit: line 7: syntax error near `"^+cod_bank">'
/etc/svn/testrepo/hooks/pre-commit: line 7: `$SVNLOOK diff "$REPOS" -t "$TXN" | [[ grep "^+builder_group">/dev/null exit 0 ]]  ||'

Можете ли вы понять, почему она отображает ошибку, как она есть?Спасибо.

1 Ответ

0 голосов
/ 23 мая 2018

Вот что мне пришлось изменить, чтобы заставить его работать.

    $SVNLOOK diff -t "$TXN" "$REPOS" | grep -i "builder_group" > /dev/null && { echo "File contains builder_group commit failed." 1>&2; exit 1; }
    exit 0;

Исходя из того, что у вас есть в поле после grep -i "abc123", он будет искать файл и, если он соответствует или содержит тот же путь надписи, вызовет ошибку фиксации.

Пример: если файл содержит aabc123, он все равно выдаст ошибку.

...