2009-11-10 11 views
5

Ich habe eine EXE-Datei erstellt, die für die Konsole die ersten und zweiten Argumente, die es erhält, zu drucken.SVN Post-Commit-Hook nicht ausführbare Datei

Im SVN post-commit Haken schrieb ich:

PATH_TO_FILE\print.exe "%1" "%2" 

, als ich ein Check-in machen, es stecken bleibt.

% 1 ist die PATH
% 2 Revisionsnummer

ist

EDIT

Die Antwort auf meine Frage ist, dass die ausführbare Datei im Verzeichnis "bin" des SVN Server sein sollte, nicht im Ordner hooks des Repository.

Vielen Dank alle, Oded.

+1

@Oded: Sie haben eine Menge zusätzlicher Details in den Kommentaren zu den Antworten hinzugefügt. Sie können die Frage klarer und besser machen, indem Sie sie bearbeiten, um die Details hinzuzufügen. – JXG

Antwort

0

Über welches Betriebssystem sprechen wir? Wenn es Windows ist, glaube ich nicht, dass Sie die Anführungszeichen (") um die Parameter haben sollten.

Was ist" PATH_TO_FILE "? Und Umgebungsvariable? Was ist es Wert? Haben Sie überprüft, dass es kein Finale enthält Backslash? Haben Sie nach dem Ändern der Umgebungsvariablen neu gestartet.Es handelt sich um eine systemweite oder Benutzer-Level-Umgebungsvariable.Erinnern Sie sich, dass wenn Sie den SVN-Server als einen Dienst unter einem anderen Benutzer ausführen, die Env var möglicherweise nicht für diesen Benutzer definiert ist Warum nicht einfach den vollständigen Pfad direkt eingeben, nur um zu testen, dass es nichts mit einer falschen Umgebungsvariablen zu tun hat

Sie sagen "es bleibt stecken" erhalten Sie einen Fehler? Was passiert genau? nähere Details dazu, wie es scheitert, könnte helfen

Wenn dieses Windows Sie verwenden, können Sie Fehler in eine Datei umleiten, indem Sie diese:

PATH_TO_FILE\print.exe %1 %2 > c:\output.txt 

Ist das ein einfacher SVN-Server oder verwenden Sie VisualSVN Server?

+0

Ich verwende VisualSVN Server. läuft auf Windows Server. Der Pfad der EXE-Datei ist: D: \ print.exe. Das Commit-Fenster tut nichts. Es zeigt keinen Fehler oder irgendetwas an. weder eine vollständige Nachricht noch ein Fehler. – Oded

+0

Es hört sich fast so an, als würde niemals ein Commit stattfinden, das könnte die Ursache Ihres Problems sein. Der Hook wird nie ausgeführt, wenn der Commit ihn nie zum Repository bringt. –

+0

Ja, was Peter sagt, ist möglich. Wenn Sie den Hook entfernen, funktioniert das Commit dann? –

1

Print nimmt einen Dateinamen an den Drucker. Sie liefern ein Verzeichnis, das Ihrer Beschreibung entspricht. Versuchen Sie, etwas in eine Datei zu schreiben.

+0

Ich möchte schließlich ein Skript aus einer EXE-Datei ausführen. Also muss ich die Datei laufen lassen. – Oded

+1

Ich weiß, dass Sie es tun, aber versuchen Sie, mit dem einfachsten möglichen Szenario anzufangen. –

+0

Ich habe versucht, was du gesagt hast. Es erstellt eine TXT-Datei. Ich habe versucht, etwas wie: echo "% 1" "% 2"> c: \ log.txt print.exe "% 1" "% 2" (Senden der 2 Argumente). und es bleibt immer noch stecken. Der Commit wird nicht abgeschlossen. Das Commit-Fenster bleibt geöffnet. – Oded

0

Es muss Windows-Umgebung sein, da ich print.exe sehe. Ich wiederhole einfach die Argumente wie unten.

echo %1 %2 >&2 

Dies scheint an der Eingabeaufforderung ohne Probleme zu drucken.

Verwandte Themen