Der Post-Commit-Hook von Subversion wird beim Commit nicht ausgeführt. Das Skript funktioniert, weil ich es in der Befehlszeile ausführen kann
-
21-12-2019 - |
Frage
Ich habe gerade ein neues Repository erstellt.Mein Server ist Ubuntu 12.04 32 Bit.Ich möchte, dass meine Commits live sind, sobald ich sie festgeschrieben habe.Dies wird dadurch erreicht, dass ich eine Arbeitskopie in meinem öffentlichen HTML-Verzeichnis erstelle und diese Arbeitskopie mit dem Post-Commit-Hook aktualisieren lasse.Ich habe das anhand der Anleitung hier eingerichtet:
http://www.frenssen.be/content/using-subversion-automatically-update-live-website
Das Problem ist, dass mein Post-Commit nicht ausgeführt wird, wenn mein Projekt festgeschrieben wird. Mein Projekt läuft einwandfrei.Ich weiß, dass das Skript auch ein gültiges Skript ist, da ich es damit ausführen kann
env ./post-commit
innerhalb der hooks
Verzeichnis und es wird ordnungsgemäß aktualisiert.
Ich dachte, es könnte eine Berechtigungssache sein, also habe ich sie ausgiebig genutzt chown
um sicherzustellen, dass www-data
ist der Besitzer von:
the repo /home/svn/repo2
the working copy /var/www/html
the hook /home/svn/repo2/hooks/post-commit
the update binary /home/svn/autoupdate/autoupdate
Aber immer noch nichts.Meine Commits sind erfolgreich, aber der Hook wird nie ausgeführt.Mein Hook-Skript sieht so aus:
#!/bin/sh
/home/svn/autoupdate/autoupdate
Das ganze Googeln scheint auf ein Berechtigungsproblem hinzuweisen, aber ich kann es nicht herausfinden.
Lösung
Können Sie das Beispiel dieses Mannes wiederholen und sehen, ob es überhaupt funktioniert?
mikewest.org/2006/06/subversion-post-commit-hooks-101
Erhalten Sie beim Commit eine Fehlermeldung?
Wenn Ihr Post-Commit-Hook tatsächlich fehlgeschlagen wäre, würden Sie meiner Meinung nach in jedem Client, den Sie zum Einchecken verwendet haben, Beweise dafür sehen.Ich vermute fast, dass Post-Commit überhaupt nicht ausgelöst wird.Um es noch einmal zu überprüfen, muss die Datei tatsächlich „post-commit“ in Kleinbuchstaben und nicht „post-commit.tmpl“ heißen.