Cómo imprimir arguments en el gancho SVN

Estoy usando windows7 y el server de VisualSVN. Escribí un simple gancho post-commit de SVN que se parece a

C:\Perl64\bin\perl C:\repositories\secret-project\hooks\myhook.pl %1 %2 

y el script myhook.pl se ve como

 $svnlook = '"C:\Program Files\VisualSVN Server\bin\svnlook.exe"'; $repos = $ARGV[0]; $txn = $ARGV[1]; $msg = `$svnlook changed -t "$txn" "$repos"`; chomp($msg); print STDOUT $repos . " " . $txn; print STDOUT $msg; exit(0); 

así que, básicamente, solo quiero por ahora imprimir files modificados. Commit se procesa sin errores, pero no veo nada impreso cuando paso por TortoiseSVN o cuando me comprometo a través de cmd. Entonces, ¿está impreso y, de ser así, dónde está? También traté de escribirlo en un file de text, pero sin éxito, ¿qué es lo que me falta aquí? 🙁

EDITAR:

por el comentario de ikegami, sí, el código se está ejecutando.

También escribí otra muestra de script, donde bash escribir algo en un file txt y enviar datos al pequeño service de testing que creé.

 $svnlook = '"C:\Program Files\VisualSVN Server\bin\svnlook.exe"'; $repos = $ARGV[0]; $txn = $ARGV[1]; #-------------------------------------------- use LWP::UserAgent; my $ua = LWP::UserAgent->new; my $server_endpoint = "http://localhost:1337/test"; $msg = `$svnlook changed -t "$txn" "$repos"`; chomp($msg); open(my $fh, '>', 'report.txt'); print $fh $msg; close $fh; print STDOUT "done\n"; # 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 = '{"$txn":"' . $txn .'"}'; print STDOUT $post_data; $req->content($post_data); my $resp = $ua->request($req); if ($resp->is_success) { my $message = $resp->decoded_content; print STDOUT "Received reply: $message\n"; } else { print STDERR "HTTP POST error code: ", $resp->code, "\n"; print STDERR "HTTP POST error message: ", $resp->message, "\n"; } exit(0); 

Ahora estoy enviando $txn al service que hice y puedo imprimirlo, pero cuando trato de enviar $repos obtengo un error en mi service, Syntax error: unexpected token R

¿Cómo se ve $repos ? Tal vez necesito analizarlo de alguna manera antes de imprimir o enviar a mi service?

EDICION 2:

 $svnlook = '"C:\Program Files\VisualSVN Server\bin\svnlook.exe"'; $repos = $ARGV[0]; $txn = $ARGV[1]; print STDOUT "repos:" . $repos . "rev:" . $txn; #-------------------------------------------- use LWP::UserAgent; my $ua = LWP::UserAgent->new; my $server_endpoint = "http://localhost:1337/test"; $msg = `$svnlook changed -t "$txn" "$repos"`; chomp($msg); chomp($reply); if (length($repos) == 0) { print STDERR "my error, repos = 0"; exit(1); } if ( length($msg) == 0 ) { print STDERR "my error, msg = 0"; exit(1); } open(my $fh, '>', 'report.txt'); print $fh $msg; close $fh; print STDOUT "done\n"; # 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 = '{"$txn":"' . $txn .'"}'; print $post_data; $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 ST "HTTP POST error code: ", $resp->code, "\n"; print "HTTP POST error message: ", $resp->message, "\n"; } exit(0); 

Así que agregué la printing de arguments al principio, comprobando si la longitud de $repos es igual a 0 y si $msg es igual a 0

y en la console solo obtengo

 svnlook: E160007: No such transaction '85' my error, msg = 0 

Es un gancho post-commit

Subversion muestra al usuario hook output solo si el enlace posterior a la confirmación devuelve un resultado distinto de cero.

Intenta replace la exit(0); con la exit(1);

Además post-commit acepta el revision number no el transaction name transacción, ya que la transacción ya está comprometida en este punto. ¿Estás seguro de que estás configurando el enganche post-commit y no pre-commit ?

Si usa STDERR en lugar de STDOUT, genera:

 $ svn commit tull -m "testdir" Adding tull svn: E165001: Commit failed (details follow): svn: E165001: Commit blocked by pre-commit hook (exit code 1) with output: Debug: repos:'C:\Repositories\BuyPass-LRA' transaction:'7173-5jh'