Wie kann ich ein Subversion Pre-Commit-Hakenskript debuggen?
-
25-10-2019 - |
Frage
Dies scheint eine sehr grundlegende Frage zu sein, aber ich bin ausgeschlagen. So testen Sie diese Skripte, die man zu einem Hakenzweck geschrieben hat.
Wie wir wissen, dass das Skript im Hintergrund ausgeführt wird und der einzige Fehler uns durch die SVN -Konsole auf uns zurückwirft. Ich habe es mit Haltepunkt versucht, aber ich kann nichts in das Skript eingeben.
Hat jemand eine Idee dazu? Ich schreibe ein SVN-Hook-Skript unter Windows, so viele bereits geschriebene Hook-Skripte, die nicht ausgeführt werden oder nicht die gewünschte Ausgabe angeben, z.
Lösung
Ich kann Ihnen einige Ratschläge geben:
- Sie müssen ausdrucken
STDERR
. Nur so wird Ihr Skript Ihnen Fehler meldet. Sie können dies für tatsächliche Tests verwenden. - Ich schrieb mein vorkommendes Skript, um beide zu nehmen
-t
oder an-r
Befehlszeilenparameter. Bei der Ausführung als Pre-Commit-Haken kann ich das verwenden-t
Parameter in die Transaktionsnummer übergeben. Wenn ich es aus der Befehlszeile ausführen kann, kann ich das verwenden-r
Parameter und geben Sie ihm eine Revisionsnummer zum Ausführen. - Ich habe auch a geschrieben
debug
Funktion, die es mir ermöglichte, Informationen auszudrucken, wenn ich a festlegte-debug
Befehlszeilenparameter. Ich konnte das ein- und ausschalten. - Wenn Sie Ihren Haken tatsächlich testen, verwenden Sie eine Kopie des Repositorys und stellen Sie sicher, dass die
pre-commit
Das Shell -Skript wird fehlschlagen, indem es mit einem Exit -Code von beendet wird2
. Sie werden Ihre Transaktion niemals begehen, aber Sie erhalten Nachrichten in Ihrem vorkommenden Skript, was los ist (das heißt, wenn Sie alles nach Stderr drucken).
Sie können sich die Hook -Skripte ansehen, die ich entwickle, um einige Ideen zu bekommen. Ich verwende das Data::Dumper
Perl -Modul, mit dem Datenstrukturen in meinem Skript ausgedruckt werden können.