Ich verwende Mercurial, um alles zu verwalten , einschließlich meiner statischen HTML-Seiten. Es macht mir das Leben wirklich sehr, sehr einfach.
Zu den Vorteilen gehören
- Alle Vorteile der Versionskontrolle (Rollbacks, Meilenstein-Tags usw.)
- In der Lage sein, Ihre Site in Eile zu klonen
- Sie haben immer eine funktionierende lokale Sicherung / Kopie
- Einfach zu synchronisieren, wenn Sie dazu neigen, Änderungen vor Ort vorzunehmen (an Ort und Stelle auf dem Server).
- Die meisten gemeinsam genutzten Hosts (wenn Sie es mit einem zu tun haben) haben nichts dagegen, ihn zu installieren
Haftungsausschluss, ich habe das Tutorial geschrieben. Ja, die Art von VCS, die Sie verwenden, spielt bis zu einem gewissen Grad eine Rolle. Zum Beispiel würde ich in diesem Szenario nichts verwenden, wo ich nicht lokal festschreiben und einen großen Push / Update durchführen könnte. Das zwingt mich einfach dazu, zu viele potenziell problematische Änderungen in einer Verpflichtung zusammenzufassen.
Ich könnte es mit Subversion machen, und ich klopfe überhaupt nicht an SVN. Ich denke nur, dass Mercurial ein weitaus besseres Werkzeug für das Problem ist, das Sie lösen möchten.
Ich bin der Meinung, dass Sie Ihre Werkzeuge nicht „umgehen“ müssen, es sei denn, Sie haben keine andere Wahl. Wenn Sie dies tun, wird der Zweck, sie zu haben, zunichte gemacht, und Sie haben die Wahl :)
Zusätzlich zu den hervorragenden Vorschlägen in den anderen Antworten möchten Sie möglicherweise prüfen, ob es für Sie wichtig ist, ein atomares Update durchzuführen.
Auf meinem FreeBSD-Server erreiche ich dies durch zwei Mechanismen:
Versionierung aller meiner statischen Ressourcen. (ZB
http://static.example.com/images/logo.1.png
oderhttp://static.example.com/style/main.3.css
). Auf diese Weise kann ichsvn update
direkt vor dem Aktualisieren der dynamischen Site zur statischen Site wechseln, ohne mir Sorgen machen zu müssen, dass Benutzer neue Dateien auf alten Seiten sehen.Versionierung der gesamten dynamischen Website. In meinem Fall zeigt mein Dokumentenstamm auf einen symbolischen Link. Meine Strategie ist es, die neue Version der Produktion einzurichten und sie dann mit einem einzigen Befehl live zu übertragen. .G. etwas wie das:
cp -Rp www.site1.com.1 www.site1.com.2
(odersvn checkout
)svn update site1.com.2
(braucht vielleicht einesvn switch
erste)ln -sf site1.com.2 www.site1.com
(Änderungen in der Produktion atomar verschieben)Dies stellt sicher, dass keiner meiner Benutzer eine halbgebackene Seite sieht. Sie sehen entweder die alte Version, wenn sie sich noch in ihrem Cache befindet, oder die neue.
Diese Strategie funktioniert nur, wenn Sie nicht vom Benutzer hochgeladene Inhalte mit Ihrer dynamischen Site mischen.
quelle
Wir verwenden die scp-Aufgabe von ant mit dem modifizierten Selektor . Das heißt, Sie aktualisieren nur die Dateien, die sich seit dem vorherigen Upload geändert haben. Leider scheint der modifizierte Selektor nur für den persönlichen Gebrauch gedacht zu sein und nicht für Teammitglieder. Die
cache.properties
Datei enthält Pfadnamen zum Arbeitsverzeichnis des Benutzers. Wir haben eine Reihe von Ameisenzielen geschrieben, um diecache.properties
Datei in ein Format zu massieren, das von Entwicklern gemeinsam genutzt und dann wieder in das Format massiert werden kann, das Ameisen benötigen. Das Format variiert auch zwischen einer Windows-Umgebung und einer GNU / Linux-Umgebung.quelle
Ist es nicht der springende Punkt bei der Verwendung der Versionskontrolle, dass Sie sich nicht mit dem Sichern der Site befassen müssen, bevor Sie ein Update veröffentlichen?
Wenn es richtig gemacht wurde, sollte ein
svn update
(oder ein gleichwertiges) ausreichen, und wenn es ein Fehler ist, dann rollen Sie es auf ein vorheriges Commit zurück? Das machen wir sowieso. Übernehmen Sie alle Änderungen,svn update
den Staging-Server. Wenn alles in Ordnung ist, dannsvn update
den Live-Server.quelle