J'ai installé et installé VisualSVN Server v3.2.2 sur ma machine locale (Windows 7 Professional - 64bit) et j'ai écrit un hook post-commit en Perl fondamentalement devrait envoyer une requête HTTP POST à un serveur chaque fois que quelque chose a été commité. J'ai testé mon script Perl par cmd et je reçois une réponse valide, mais quand je commets quelque chose en utilisant TortoiseSVN J'obtiens des erreursLe serveur VisualSVN ne peut pas reconnaître Perl dans le hook post-commit
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.
Voici mon script 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);
et mon poste fichier batch -commit:
perl myhook.pl %1 %2
J'ai essayé de redémarrer le serveur svn et ma machine, mais pas de chance. Aussi quand je tape dans path
cmd Je ne vois perl dans mon chemin C:\Perl64\bin
Peut-être que mon approche de ce crochet ne va pas ou quelque chose ... quelqu'un peut aider avec celui-ci?
Merci
Merci pour une réponse rapide, mais maintenant je reçois une autre erreur étrange: Erreur: crochet post-commit a échoué (code de sortie 2) avec sortie: Impossible de script open perl "myhook.pl": Aucun fichier ou répertoire lorsque myhook.pl se trouve dans le même dossier que post-commit.cmd –
Comme je l'ai dit, vous devez spécifier le ** chemin d'accès complet à tous les éléments **. Je ne connais pas le chemin de 'myhook.pl', donc je ne pouvais pas le mettre dans mon post. – alroc
oh oui, tous les articles ... désolé de ne pas lire attentivement. –