2015-03-13 11 views
1

Я установил и настроил 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

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

Благодаря

ответ

4

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

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

C:\Perl64\bin\perl myhook.pl %1 %2 
+0

Спасибо за быстрый ответ, но теперь я получаю другую странную ошибку: Ошибка: после совершающие крюк не удалось (код выхода 2) с выходом: Не удается открыть скрипт на Perl «myhook.pl»: Нет такого файл или каталог , когда myhook.pl находится в той же папке, что и post-commit.cmd –

+0

Как я уже сказал, вам нужно указать ** полный путь ко всем элементам **. Я не знаю путь к 'myhook.pl', поэтому я не мог поместить его в свой пост. – alroc

+0

о, да, все предметы ... извините за то, что не читали внимательно. –

 Смежные вопросы

  • Нет связанных вопросов^_^