Я установил и настроил VisualSVN Server v3.2.2 на своем локальном компьютере (Windows 7 Professional - 64 бит), и я написал post-commit hook в Perl, который в принципе, должен посылать один HTTP-запрос POST на какой-либо сервер каждый раз, когда что-то было поручено. Я проверил мой сценарий Perl через ЦМД, и я получаю правильный ответ, но, когда я совершаю что-то с помощью TortoiseSVN клиента я получаю ошибкуСервер VisualSVN не может распознать Perl в post-commit hook
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);
и мой пост -commit batch file:
perl myhook.pl %1 %2
Я попытался перезапустить сервер svn и свою машину, но не повезло. Кроме того, когда я печатаю path
в ЦМД я вижу Perl на моем пути C:\Perl64\bin
Может быть, мой подход к этому крючок не так или что-то ... кто-нибудь может помочь с этим?
Благодаря
Спасибо за быстрый ответ, но теперь я получаю другую странную ошибку: Ошибка: после совершающие крюк не удалось (код выхода 2) с выходом: Не удается открыть скрипт на Perl «myhook.pl»: Нет такого файл или каталог , когда myhook.pl находится в той же папке, что и post-commit.cmd –
Как я уже сказал, вам нужно указать ** полный путь ко всем элементам **. Я не знаю путь к 'myhook.pl', поэтому я не мог поместить его в свой пост. – alroc
о, да, все предметы ... извините за то, что не читали внимательно. –