Copying sources and texts (also in parts) for publishing without our permission is NOT ALLOWED. We are fed up with finding our work on other sites (like stackoverflow).
Das Kopieren von Quellcode und Texten (auch in Auszügen) ist nicht erlaubt. Wir haben es gründlich satt, unsere Arbeit auf anderen Webseiten zu finden.

Copying for non-public usage is allowed.           Das private Kopieren und Benutzen ist natürlich erlaubt und erwünscht.
23. Jul 2010
Teaser

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

20 − 1 =