Сервер VisualSVN не может распознать Perl в ловушке после фиксации

Я установил и настроил VisualSVN Server v3.2.2 на моем локальном компьютере (Windows 7 Professional - 64bit), и я написал обработчик post-commit на Perl, который в основном должен отправлять один HTTP-запрос POST на какой-то сервер. каждый раз что-то было совершено. Я протестировал свой Perl-скрипт с помощью cmd, и я получаю правильный ответ, но когда я что-то фиксирую с помощью клиента TortoiseSVN, я получаю ошибки

Error post-commit hook failed (exit code 1) with output: 
'perl' is not recognized as an internal or external command, 
operable program or batch file.

Вот мой скрипт на Perl:

$svnlook = '"C:\Program Files\VisualSVN Server\bin\svnlook.exe"';

$repos = $ARGV[0];
$txn = $ARGV[1];

print STDOUT "message sent " . $repos . " " . $txn;

use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $server_endpoint = "http://jsonplaceholder.typicode.com/posts";

# set custom HTTP request header fields
my $req = HTTP::Request->new(POST => $server_endpoint);
$req->header('content-type' => 'application/json');

# add POST data to HTTP request body
my $post_data = '{ "repos":"' . $repos . '", "txn":"' . $txn  . '"}';
$req->content($post_data);

my $resp = $ua->request($req);
if ($resp->is_success) {
    my $message = $resp->decoded_content;
    print "Received reply: $message\n";
}
else {
    print "HTTP POST error code: ", $resp->code, "\n";
    print "HTTP POST error message: ", $resp->message, "\n";
}


exit(0);

и мой командный файл после фиксации:

perl myhook.pl %1 %2

Я попытался перезапустить svn-сервер и свою машину, но безуспешно. Также, когда я набираю path в cmd, я вижу perl на моем пути C:\Perl64\bin

Может быть, мой подход к этому крючку неправильный или что-то в этом роде ... кто-нибудь может помочь с этим?

Спасибо


person Darko Rodic    schedule 13.03.2015    source источник


Ответы (1)


Ваш PATH не совпадает с PATH учетной записью пользователя, под которой работает VisualSVN Server.

Всегда указывайте полный, абсолютный путь ко всем элементам в ваших сценариях ловушки, независимо от того, какой сервер SVN и операционную систему вы используете.

C:\Perl64\bin\perl myhook.pl %1 %2
person alroc    schedule 13.03.2015
comment
Спасибо за быстрый ответ, но теперь я получаю другую странную ошибку: Ошибка: ошибка после фиксации (код выхода 2) с выходом: не удается открыть скрипт perl myhook.pl: нет такого файла или каталога, когда myhook.pl находится в та же папка, что и post-commit.cmd - person Darko Rodic; 13.03.2015
comment
Как я уже сказал, вам нужно указать полный путь ко всем элементам. Я не знаю путь к myhook.pl, поэтому не смог поместить его в свой пост. - person alroc; 13.03.2015