Zwillingssterns Weltenwald
Published on Zwillingssterns Weltenwald (http://www.zwillingsstern.de)

Startseite > Webseiten einfacher aktualisieren mit Mercurial und lftp

Webseiten einfacher aktualisieren mit Mercurial und lftp

-> Webseiten auf den FTP-Server laden wird einfach "hg push".

Ich schreibe seit langem eigene Webseiten, und die Notwendigkeit, sie jedesmal von Hand auf den Server hochzuladen, wenn ich etwas geändert hatte, war mir seit Jahren ein Dorn im Auge.

Vor kurzem habe ich nun angefangen, die Webseiten mit Mercurial als Versionsverwaltung zu bearbeiten, und Mercurial hat eine sehr praktische Funktion: Hooks (also Anker).

Damit kann ich einen Befehl ausführen, wenn ich in meiner Versionsverwaltung eine bestimmte Handlung ausführe.

Ich verwende sie, um meine Webseiten direkt auf den FTP-Server zu kopieren, sobald ich Änderungen in Mercurial "push"e.

Das heißt, sobald ich eine Webseite so weit aktualisiert habe, dass ich sie veröffentlichen will, gehe ich nur kurz in die Konsole und tippe

hg push

und schon landet meine Webseite automatisch aktualisiert auf meinem FTP-Server.

Und wenn ich nichts geändert habe, merkt Mercurial das und ruft den FTP nichtmal auf.

Damit es auch bei euch funktioniert, braucht ihr nur Mercurial und lftp. Ich bin mir sicher, es geht auch ohne lftp, aber damit geht es bei mir gut, und es war schnell installiert. Warum sollte ich mir die Arbeit machen, wenn es andere schon für mich gemacht haben?

-> Mercurial: http://www.selenic.com/mercurial/ [1]
-> lftp: http://linux.maruhn.com/sec/lftp.html [2]

Danach müsst ihr nur noch das folgende in hgrc im Repository der Webseite eintragen (in ".hg/hgrc" - Zeilen, die mit "#" anfangen, sind Kommentare):

default-push müsst ihr noch für euch anpassen. Bei mir nimmt es mein Mercurial repo auf freehg.org

------ ------ Datei ------ ------
[paths]
# default-push = http://USER:PASSWORD@freehg.org/u/ArneBab/erynnia/ [3]

[hooks]
# Update my website automatically when I push the repo.
# Explanations: lftp -c 'COMMAND'
# COMMAND:
# open CMD -u USER,PASSWORD FTP_SERVER
# CMD:
# -R: Reverse -> local_source remote_source
# -X GLOB: Glob: Shell-style -< exclude the .hg dir

outgoing = lftp -c 'open -e "mirror -R -X .hg/ ABSOLUTER_PFAD_LOKAL RELATIVER_PFAD_FTP" -u USER,PASS ftp://FTP_SERVER [4] '

------ ------ /Datei ------ ------

Und schon ist es nur noch "hg push", um die Webseiten zu aktualisieren.

Und es wird nur hochgeladen, was sich geändert hat (dank lftp).

Effektiv ist das ein "push content to FTP" mit Mercurial.

Viel Spaß!

PS: Wenn du Webseiten mit noch weniger Aufwand basteln willst, kannst du deine Webseiten auch mit pyMarkdown_Minisite [5] schreiben, einem Projekt, das ich gestartet habe, weil ich nicht alles in HTML kodieren und trotzdem einfache und schön aussehende Webseiten haben wollte. Die Technik in diesem Artikel nutze ich dabei zum automatischen hochladen der Seiten.

Werke von Arne Babenhauserheide. Lizensiert, wo nichts anderes steht, unter der GPLv3 or later und weiteren freien Lizenzen.

Diese Seite nutzt Cookies. Und Bilder. Manchmal auch Text. Eins davon muss ich wohl erwähnen — sagen die meisten anderen, und ich habe grade keine Zeit, Rechtstexte dazu zu lesen…


Source URL: http://www.zwillingsstern.de/deutsch/freie-software/licht/webseiten-aktualisieren-mit-mercurial-und-lftp

Links:
[1] http://www.selenic.com/mercurial/
[2] http://linux.maruhn.com/sec/lftp.html
[3] http://USER:PASSWORD@freehg.org/u/ArneBab/erynnia/
[4] ftp://FTP_SERVER
[5] http://draketo.de/proj/pymarkdown_minisite/