2008-08-18 13 views
9

Ich führe Subversion in unseren Webshop ein. Ich möchte, dass die eingecheckten Dateien per FTP auf den Server hochgeladen werden (und wenn sie über SFTP zu Subversion kommen). Die Dateien werden zu Testzwecken an eine Veröffentlichungskandidatenseite gesendet. Ein Skript kann aufgerufen werden, um die Dateien in die Produktion zu verschieben.Subversion und Webentwicklung

Meine Frage ist: Wie übertrage ich die Dateien über Subversion auf den Server? Gibt es ein Skript, das ich hinzufügen kann, das die Übertragung durchführt, wenn die Dateien eingecheckt sind?

Antwort

3

Wenn Sie Shell-Zugriff auf Ihre Sever haben, und SVN darauf installiert (oder die Fähigkeit, SVN zu installieren), dann Ihre beste Wette kann nur sein, FTP ganz zu umgehen.

Wie wir unsere Anwendungen implementieren ist (vereinfacht)

  • Entwickler Code schreiben und überprüfen Sie es in Stamm
  • Von Zeit zu Zeit, wenn Stamm stabil ist, werden wir
  • einen Schnappschuss davon als Tag nehmen
  • auf dem Server Kasse sVN, um den Tag

Wenn Änderungen an den Server vorgenommen werden müssen (oder direkt auf dem Live-Server selbst), ist es trivial Subversion zu verwenden, um den Code zu synchronisieren

1

Ich denke, was Sie suchen, ist etwas wie Integration mit einem automatischen Build-Skript. Ich habe CruiseControl verwendet, um eine ähnliche Sache mit einer ASP.Net-Anwendung zu tun. Ich kenne Ihre genauen Anforderungen nicht, aber ich würde wetten, dass Sie es tun könnten, was Sie wollen.

1

Post-Commit-Skripte sind dafür 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 article zeigt, wie dies geschehen könnte, und this zeigt, wie Hook-Scripts können

1

Sie können sich wahrscheinlich den SVN „Haken“, dies zu tun, die mit Subversion eingesetzt werden. Grundsätzlich können Sie Ihren Server so konfigurieren, dass er vor oder nach jedem Einchecken Skripts ausführt. Hier ist der direkte Link zum entsprechenden Abschnitt der online book.

3

Sie möchten ein Skript erstellen, das den Post-Commit-Hook in SubVersion verwendet. Sie können das Skript entweder von Ihrem Repository und dann per FTP auf den Server exportieren lassen oder einfach aus Ihrem Repository in ein Arbeitsverzeichnis auf Ihrem Server auschecken und "svn update" im Server-Arbeitsverzeichnis in Ihrem Post-Commit-Hook-Skript aufrufen .

There's more information in the Subversion FAQ

0

Ich zweite Orion Idee. Wenn Sie Shell-Zugriff auf den Server haben, ist es sehr einfach Subversion selbst als Deployment-Tool zu verwenden. Stellen Sie nur sicher, dass Sie einige Webserver-Regeln eingerichtet haben, damit Sie die .svn-Verzeichnisse nicht versehentlich offen legen.

2

Ich denke, Sie sollten wahrscheinlich Svn-Export statt Svn Checkout für Bereitstellungen verwenden, so dass Sie diese .svn-Verzeichnisse matschig Ihre Produktion Sicherungsjobs haben. Svn Export ist eine "saubere" Kasse.

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

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

0

svn2web wird ftp oder scp Dateien von einem Subversion-Repository zu einem Webserver bei jedem Commit. Details finden Sie im Projekt SourceForge.

Verwandte Themen