Frage

Ich habe einen explodierten WWW-Ordner, der meine gesamte PHP-Website enthält.

Ich frage mich, ob so etwas möglich ist:

  • Entwickler arbeiten nicht direkt an den Dateien
  • Änderungen werden lokal oder auf einem Staging-Server getestet
  • SVN-Commits lösen ein Ereignis aus, das die letzten am Repo vorgenommenen Änderungen mit dem WWW-Ordner synchronisiert

Ich habe von Svnsync-/Svnexport-Tools gehört, aber wie kann ich sie bei Commits auslösen oder dafür sorgen, dass sie auf mein Repo „lauschen“?

Können sie außerdem nur die geänderten Dateien aktualisieren?Mein Repo ist sehr groß.

War es hilfreich?

Lösung

Die Leute machen das so oft, dass es in ist die offiziellen Subversion-FAQ

Kurzfassung:

  1. Mach dein www Verzeichnis eine Arbeitskopie
  2. Erstellen Sie einen Post-Commit-Hook, der ausgeführt wird svn update gegen diese Arbeitskopie.

Wenn Ihr Repository-Server keinen direkten Zugriff auf den Webserver hat (was nicht der Fall sein sollte), sind Sie mit Folgendem besser bedient:

  1. Erstellen Sie eine Arbeitskopie auf dem Repository-Server oder einem Zwischenserver
  2. Erstellen Sie einen Post-Commit-Hook, der ausgeführt wird svn update gegen diese Arbeitskopie
  3. rsync diese Arbeitskopie auf Ihren Webserver (dies könnte Teil des Post-Comit-Hook-Skripts sein)

Noch ein anderer Eine Option wäre die Verwendung eines Continuous-Integration-Servers, um die Repository-Änderungen zu überwachen und bereitzustellen.Tatsächlich ist das für die meisten Geschäfte der beste Weg.Sie würden den CI-Server verwenden, um einen Staging-Server zu aktualisieren und ihn dann erst nach Abschluss des Tests auf den Live-Server zu übertragen.Dann werden Ihre Entwickler arbeiten nur in einer lokalen, für sie privaten Arbeitskopie.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top