Seite 1 von 1

SVN Hooks

Verfasst: Donnerstag 17. Mai 2007, 12:26
von EnTeQuAk
Ich habe mal eine Frage. Kennt sich jemand etwas mit SVN Hooks aus?

Ich wollte mir nen hook schreiben, der mir automatisch, sobald ich einen bestimmten Ordner aktualisiere, die Website aktualisiert.

Geht das?

Ich habe zZ folgende post-commit.tmpl:

Code: Alles auswählen

 REPOS="$1"                                                                  
 REV="$2"
 
 # /usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" commit-    watchers@example.org
/home/webshox/htdocs/svn/hooks/webpage.py "$REPOS" "$REV"
die Datei `webpage.py` ist zZ nur ne Datei, die ne einfache Textdatei öffnen soll und mir `REPOS` und `REV` speichern soll

Aber so richtig funktioniert das nicht...
Die Datei ist ausführbar, und wenn ich obiges per Hand aufrufe gibts keine Probleme...

Was muss ich noch beachten? Wie könnte cih so etwas realisieren?

MfG EnTeQuAk

Verfasst: Donnerstag 17. Mai 2007, 12:28
von mitsuhiko
Zugriffsrechte und das working directory.

Am besten ein "cd /da/will/ich/hin" im Skript machen.

Und stdout/stderr in ein file umleiten damit man es debuggen kann.

Verfasst: Donnerstag 17. Mai 2007, 12:44
von tiax
"tmpl" steht für "template" :wink: Die Endung musst du entfernen.

Verfasst: Donnerstag 17. Mai 2007, 13:07
von EnTeQuAk
Und stdout/stderr in ein file umleiten damit man es debuggen kann.
Du redest davon, das ich das im Pythonscript machen soll, ja?
"tmpl" steht für "template" Wink Die Endung musst du entfernen.
Gut. Habe ich gemacht.


Die Datei heißt nun `post-commit` .. --> .. nur klappen tut das noch nicht. Ich rufe das Script (post-commit) per Hand auf, klappt alles einwandfrei. Doch er führt es irgentwie nicht nach einem `svn update` aus.

Ich werd vermutlich doch die Dokumentation von SVN raussuchen...


MfG EnTeQuAk

Verfasst: Donnerstag 17. Mai 2007, 19:15
von birkenfeld
Wie wärs, wenn du
a) überprüfst ob das Skript aufgerufen wird (z.B. indem du es eine Datei in /tmp touchen lässt) und
b) wenn ja, sämtliche Ausgaben (stdout, stderr) in eine Datei leitest, z.B. so:

Code: Alles auswählen

/path/to/real/script "$@" > /tmp/hook.out 2> /tmp/hook.err