Ошибки хука Pre-commit в SVN Edge

Добрый день! В настоящее время я работаю над существующими SVN Edge и TortoiseSVN моей компании. Мы никогда не используем ловушку перед фиксацией, и, прочитав здесь все вопросы и ответы, я решил ввести требование для сообщения фиксации. Сначала я переименовал pre-commit.tmpl в pre-commit, а затем изменил код следующим образом, но я постоянно получаю следующие ошибки:

Ошибка 1: «/ usr / bin / svnlook: not found» (т.е. значение SVNLOOK)

Ошибка 2: «Если вы хотите снять блокировку, воспользуйтесь диалоговым окном« Проверить наличие изменений »или обозревателем хранилища».

В чем должна быть ценность SVNLOOK? Или какую строку мне нужно изменить. Пожалуйста, помогите мне, что мне не хватает ... Я действительно запутался, и я не разработчик. Большое спасибо!!!

1-я попытка (оригинал SVN Edge):

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

# Make sure that the log message contains some text.
SVNLOOK=/opt/CollabNet_Subversion/bin/svnlook
$SVNLOOK log -t "$TXN" "$REPOS" | \
   grep "[a-zA-Z0-9]" > /dev/null || exit 1

# Check that the author of this commit has the rights to perform
# the commit on the files and directories being modified.
commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1

# All checks passed, so allow the commit.
exit 0

2-я попытка (http://www.wandisco.com/svnforum/forum/opensource-subversion-forums/scripts-contributions/9015-pre-commit-comment-hook-script):

#!/usr/bin/perl

# config section
$minchars = 5;
$svnlook = '/usr/bin/svnlook';

#--------------------------------------------
$repos = $ARGV[0];
$txn = $ARGV[1];
$comment = `$svnlook log -t "$txn" "$repos" | grep "[A-Z][A-Z][A-Z]-*"`;
chomp($comment);

if ( length($comment) == 0 ) {
print STDERR "Your commit has been blocked as you did not input a Product reference id. Please input an id in the form of ABC-123!";
exit(1);
}
elsif ( length($comment) < $minchars ) {
print STDERR "Comment must be at least $minchars characters.";
exit(1);
}

exit(0);

3-я попытка (http://www.stillnetstudios.com/require-subversion-comments-minimum/):

#!/usr/bin/perl

# config section
$minchars = 4;
$svnlook = '/usr/bin/svnlook';

#--------------------------------------------
$repos = $ARGV[0];
$txn = $ARGV[1];
$comment = `$svnlook log -t "$txn" "$repos"`;
chomp($comment);

if ( length($comment) == 0 ) {
  print STDERR "A comment is required!";
  exit(1);
  }
elsif ( length($comment) < $minchars ) {
  print STDERR "Comment must be at least $minchars characters.";
  exit(1);
  }

exit(0);

person nova    schedule 11.03.2016    source источник
comment
Я не знаю, где еще может быть ваш svnlook ... Вы можете попробовать find /usr | grep "svnlook" найти путь.   -  person Majora320    schedule 11.03.2016
comment
SVNLOOK это файл? Итак, мне нужно найти его местонахождение? ... Спасибо, Маджора!   -  person nova    schedule 11.03.2016


Ответы (1)


Ошибка 1:
Да, svnlook - это файл. Любая программа на bash - это файл, находящийся в одном из каталогов вашего $PATH (извините, если это звучало ужасно избыточно, потому что вы это уже знали).
Наиболее важные «системные сценарии» находятся в /bin, а сценарии приложений находятся в /usr/bin.
Это означает, что если ваш svnlook установлен в другом каталоге, вам может потребоваться поискать его.
Если вы работаете в Windows, вам нужно будет указать путь к исполняемому файлу.
Ошибка 2:
Это может вам помочь.

person Majora320    schedule 11.03.2016
comment
Отлично, совсем не избыточно, так как мне нужна очень базовая информация. Обязательно свяжусь с вами за результатом. - person nova; 11.03.2016
comment
Возвращаясь к Error2, ни один из моих файлов рабочей копии не заблокирован. - person nova; 11.03.2016
comment
Для Error1 я нашел svnlook.exe в моем локальном. Я ищу нужный файл? Или это должен быть серверный файл? - person nova; 11.03.2016
comment
Здравствуйте, похоже, проблема частично решена. Теперь я получаю другую ошибку. Фиксация заблокирована предварительной фиксацией (код выхода 255) без вывода. TY - person nova; 14.03.2016