Frage

Ich führe Subversion in unseren Webshop ein.Ich möchte, dass die eingecheckten Dateien per FTP (und, sobald sie an Subversion gewöhnt sind, per SFTP) auf den Server hochgeladen werden.Die Dateien werden zu Testzwecken an eine Release-Candidate-Seite gesendet.Um die Dateien in die Produktion zu verschieben, kann ein Skript aufgerufen werden.

Meine Frage ist diese:Wie überträgt man die Dateien per Subversion auf den Server?Kann ich ein Skript hinzufügen, das die Übertragung durchführt, wenn die Dateien eingecheckt werden?

War es hilfreich?

Lösung

Wenn Sie Shell-Zugriff auf Ihren Server haben und SVN darauf installiert ist (oder die Möglichkeit hat, SVN zu installieren), ist es möglicherweise die beste Lösung, FTP vollständig zu umgehen.

Wie wir unsere Apps bereitstellen, ist (vereinfacht)

  • Entwickler schreiben Code und checken ihn in den Trunk ein
  • Wenn der Stamm stabil ist, erstellen wir regelmäßig einen Schnappschuss davon als Tag
  • Checken Sie das Tag auf dem Server mit svn aus

Wenn Änderungen am Server (oder direkt am Live-Server selbst) vorgenommen werden müssen, ist es einfach, Subversion zum Synchronisieren des Codes zu verwenden

Andere Tipps

Sie möchten ein Skript erstellen, das den Post-Commit-Hook in SubVersion verwendet.Sie können das Skript entweder aus Ihrem Repository exportieren und dann per FTP auf den Server übertragen, oder Sie können es einfach aus Ihrem Repository in ein Arbeitsverzeichnis auf Ihrem Server auschecken und in Ihrem Post-Commit-Hook-Skript „svn update“ im Arbeitsverzeichnis des Servers aufrufen .

Weitere Informationen finden Sie in den Subversion-FAQ

Ich denke, Sie sollten für Bereitstellungen wahrscheinlich svn export statt svn checkout verwenden, damit diese .svn-Verzeichnisse Ihre Produktionssicherungsjobs nicht durcheinander bringen.svn export ist ein „sauberer“ Checkout.

Ich würde auch ein Skript erstellen, das alles für Sie erledigt.Je nachdem, wie Ihr Code strukturiert ist, können Sie Ihre Verzeichnisse oft versionieren und einfach einen Symlink auf die neueste Version aktualisieren, was Rollbacks einfacher macht.

Sie könnten sogar so etwas verwenden Capistrano um die Bereitstellungen zu automatisieren.Ich unterstütze jedoch die Empfehlung für CruiseControl.

Ich denke, was Sie suchen, ist so etwas wie die Integration mit einem automatischen Build-Skript.Ich habe benutzt Tempomat Ähnliches mit einer ASP.Net-Anwendung zu tun.Ich kenne Ihre genauen Anforderungen nicht, aber ich wette, Sie könnten damit das tun, was Sie wollen.

Hierfür sind Post-Commit-Skripte nützlich.Im Wesentlichen wird bei jedem Commit nach dem Ereignis ein Skript aufgerufen, mit dem Sie einen SVN-Export an einen beliebigen Ort durchführen können.

Ein interessantes Artikel zeigt, wie dies geschehen könnte, und Das zeigt, wie Hook-Skripte mit Subversion verwendet werden können

Sie können dazu wahrscheinlich die SVN-„Hooks“ verwenden.Grundsätzlich können Sie Ihren Server so konfigurieren, dass er vor oder nach jedem Check-in Skripte ausführt.Hier ist der direkte Link zum entsprechenden Abschnitt des Online-Buch.

Ich unterstütze Orions Idee.Wenn Sie Shell-Zugriff auf den Server haben, ist es tatsächlich äußerst einfach, Subversion selbst als Bereitstellungstool zu verwenden.Stellen Sie einfach sicher, dass Sie einige Webserverregeln eingerichtet haben, damit Sie die .svn-Verzeichnisse nicht versehentlich offenlegen.

svn2web sendet bei jedem Commit Dateien per FTP oder SCP von einem Subversion-Repository an einen Webserver.Siehe die SourceForge Weitere Informationen finden Sie im Projekt.

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