SVN: Nach einem Commit automatisch die Webseite aktualisieren (Post-Commit Hook)

Bei SVN Projekten werden die Änderungen der Entwickler & Programmierer regelmäßig von deren lokaler Kopie in das entsprechende SVN Repository committed (= gesichert / gespeichert). Bei diesem "Committen" können Sie Ihren SVN Server anweisen, sofort die Änderungen auf einen WebServer zu kopieren und dadurch stets die aktuellste Version zum Testen vorzuhalten. Zuerst müssen Sie die Grundlage für spätere Updates schaffen ... einen grundlegenden Export des aktuelles Repositories:

svn export http://yourDomain.com/svn/YourProject /path/to/webserver/
Wenn das WebServer verzeichnis (hier: "/path/to/webserver/") bereits existiert und jetzt für den Export überschrieben werden soll, dann müssen die die Option "--force" an den Befehl anhängen:
svn export http://yourDomain.com/svn/YourProject /path/to/webserver/ --force
Nun richten Sie die Update-Automatik ein:
  • Dafür gehen Sie in das "hooks" Verzeichnis Ihres Projektes auf dem SVN Server
  • Kopieren Sie sich die Vorlage für den "post-commit" Hook:
    cp post-commit.tmpl post-commit
  • Bearbeiten Sie die Datei "post-commit"
    nano post-commit
  • Fügen Sie folgende Befehle ein:
    cd /path/to/webserver/
    svnlook dirs-changed [REPOS] -r [REV] | xargs /usr/bin/svn up -N
Hinweis: Dieses Vorgehen ist (meist) nur für lokale Produktions- und Test-Webserver zu empfehlen. Bei Live-Systemen können auch kleine Fehler in der Entwicklung zu fatalen Problemen führen, da diese sofort online für jeden Besucher sichtbar wären.