Comme dans le titre, je fais appel de mon script post-commit hook écrit en Perl qui a commande
$msg = `$svnlook changed -t "$rev" "$repos"`;
qui doit exécuter et que je ne devrait envoyer $msg
à mon service. Mais quand je lance
if (length($msg) == 0)
{
print STDERR "msg length is 0";
exit(1);
}
Je reçois ce message d'erreur sur la console, alors pourquoi est cette commande svnlook
pas en cours d'exécution? J'utilise Windows 7 et le serveur VisualSVN.
Sur un autre billet, j'avais autre théorie pour exécuter cette commande en crochet lui-même comme
@echo off
set repos=%1
set rev=%2
set changes=svnlook changed %repos% -r %rev%
C:\Perl64\bin\perl C:\repositories\myproject\hooks\myhook.pl %1 %2 changes
, mais je ne sais pas comment passer ce paramètre changes
, donc si cela pourrait fonctionner, il pourrait répondre que bien.
Comment passer un paramètre de batch à un script perl?
Je suis confus pourquoi avez-vous besoin de passer * changes * si vous exécutez déjà la commande * svnlook * à l'intérieur de votre script Perl? Il semble que tout ce que vous devez passer à votre script est le numéro de révision et le chemin du référentiel. –
Vous devez également noter qu'il existe deux formes de svnlook, une qui accepte un numéro de transaction et une qui accepte un numéro de révision. Vous semblez utiliser les deux ici pour une raison quelconque. –
il y a une ligne au milieu de la question, la première partie est où j'essaye d'exécuter la commande dans le script perl et il n'est pas exécuté dans la deuxième partie j'essayais d'exécuter la commande dans le lot et ensuite passer le résultat à mon script et aucun ne fonctionne –