2008-10-10 26 views
5

Mein automatisches Deployment-System aktualisiert eine aktuelle Version meiner Site durch Subversion. Anstatt meinen Live-Site-Punkt zum Stamm zu haben (was immer fast eine Work-in-Progress-Version ist), habe ich meine Live-Site auf ein Tag verweisen.Subversion & Umschalten zwischen Tags

z. Ich arbeite an trunk und wenn meine v1.0 fertig ist, erstelle ich ein Tag namens 1.0 und führe einen Checkout des Tags aus, der dann meine Live-Site ist. Jetzt arbeite ich weiter am Stamm und nach einer Weile gibt es eine v2.0. Ich erstelle ein Tag namens 2.0 und möchte, dass meine Live-Site diesem 2.0-Tag ähnelt.

Ich könnte die aktuelle Live-Site löschen und eine Überprüfung dieses 2.0-Tags durchführen. Was jedoch einfach klingt. Meine Seite ist ungefähr 1GB groß, weil sie alle Arten von PDF-Dokumenten und Video enthält. Ich kann mit Sicherheit sagen, dass es bei den meisten Updates Updates oder Fehlerkorrekturen gibt. Dies bedeutet, dass sich möglicherweise nur 1% meiner Website pro Update ändert. Und da meine Versionskontrolle nur über eine Off-Site-HTTP-Verbindung auf meinen Webserver zugreifbar ist, würde es bedeuten, dass ich diese ganze Site immer und immer wieder herunterladen muss.

Gibt es eine einfache Möglichkeit, zwischen den Tags zu wechseln und Subversion nur die Unterschiede zwischen diesen Tags zu aktualisieren?

Antwort

7

Es gibt tatsächlich eine Schalterfunktion, die genau das tut. Ich benutze TortiseSVN das ist ein Windows-Shell/gui für Subversion, also bin ich nicht vertraut mit, wie es manuell zu tun, aber das sieht aus wie es sollte helfen:

http://svnbook.red-bean.com/en/1.1/ch04s05.html

6

Befehlszeile: svn switch URL

Verwenden Sie svn Hilfe für weitere Details.

Allerdings empfehle ich Dinge anders herum zu tun. Ihre Produktions-Site ist immer auf dem Stamm, während Sie Ihre Entwicklung auf Zweigen durchführen, die wieder mit dem Stamm verbunden werden, wenn sie für die Veröffentlichung bereit sind. Nach einer bestimmten Version können Sie dann ein Tag für historische Zwecke verwenden. Nach der Zusammenführung müssen Sie nur ein Svn-Update durchführen, damit Ihre Site den neuen Code ausführt.

DivMod nimmt diese Idee zu seiner logischen Schlussfolgerung und erstellt eine Verzweigung für jedes Problem/Ticket, das gerade bearbeitet wird. Sie können read their description of their system; es bietet einige überzeugende Argumente.

+0

+1 Danke für die DivMod-Referenz. Aktualisierter Link: http://twistedmatrix.com/trac/wiki/UltimateQualityDevelopmentSystem – Paolo

0

Ich verwende ein ähnliches Setup, außer dass ich einen Live-Zweig anstelle eines Tags verwende. Es ist mehr Arbeit zu committen, da ich nun Änderungen vom Stamm in den Live-Zweig einbinden muss, aber ich kann dann einfach ein "svn up" im Webroot machen, um es zu aktualisieren. Es gibt mir auch eine etwas bessere Kontrolle, wenn ich ausgewählte Änderungen aus verschiedenen Zweigen in Live zusammenführen möchte.

Wenn ich es wieder tun würde, würde ich mercurial (oder ähnlich) verwenden, da Zweige viel einfacher zu pflegen sind, aber die obige Technik hat für 3 Live-Sites seit etwa zwei Jahren funktioniert.

Verwandte Themen