Mercurial

Mercurial ist ein verteiltes Versionsverwaltungssystem.

Links zu Mercurial:

- Mercurial Webseite.

- bitbucket.org - Repositories einfach veröffentlichen.

Mit ihm kann man Zwischenstände von der Arbeit an Dokumenten speichern und jederzeit wieder zu ihnen zurückgehen.

Außerdem können mit Mercurial viele Leute zusammen an einem einzelnen Projekt arbeiten und ihre Arbeit automatisch zusammenführen lassen, ohne dass dafür jeder ständig mit den anderen verbunden sein muss.

Eine Analogie zum Unterschied von zentralisiertem VCS (SVN) und DVCS (Mercurial)

Bei SVN sagst du einem Beamten, was du gerne hättest und er gibt dir genau das. Bei Mercurial holst du dir einfach die ganzen Akten nach Hause und lässt dir von deinem Rechner immer raussuchen, was du grade brauchst. Dank effizienteren Algorithmen meist ohne nennenswert größener Platzverbrauch, allerdings viel schneller da du nicht mit anderen Rechnern reden musst.

Warum und wie ich es nutze

Ich verwende es inzwischen für so gut wie all meine Dokumente, und ich habe das Gefühl, dass sich dadurch mein Arbeitsfluss deutlich verbessert hat (vor allem bei meinen statischen Webseiten, aber dazu in einem anderen Artikel mehr).

Und alles was ich brauche ist ein simples
$hg init
$hg add

um mein Repository zu starten, und dann ein
$hg commit -m "Zusammenfassung meiner Änderungen in einer Zeile"

um die Änderungen zu sichern und auch jedesmal auf den Stand zurückgehen zu können.
Und diese extrem kurze Zusammenfassung zu schreiben vergegenwärtlicht mir auch nochmal, was ich eigentlich geleistet habe.

Wenn ich die Sachen Anderen geben will, gehe ich einfach auf http://bitbucket.org, erstelle da ein Projekt und mache ein
$hg push https://NUTZER:PWD@bitbucket.org/NUTZER/PROJEKT/

und schon können andere es sich holen mit
$hg clone https://bitbucket.org/NUTZER/PROJEKT/

Und sie können dann eigene Änderungen einpflegen und es wieder "push"en, wenn sie mir ihre Änderungen geben wollen. Sie können sogar die Änderungen automatisch packen und mir per Mail schicken, wenn ich ihnen keinen direkten Zugriff auf das Repository geben will:
$hg bundle PROJEKT.bundle

Es speichert automatisch die Änderungen zu meinem Repository (es sei denn, der Nutzer gibt etwas anderes an) und ich kann mir dann überlegen, ob ich die Änderungen einpflege, und auch welche ich davon übernehmen will.
Wenn ich sie einpflege, sieht mein's danach so aus, als hätte der andere Nutzer direkt bei mir gearbeitet (enthält aber weiterhin auch meine Änderungen).

Anders gesagt: Mercurial zu verwenden ist verdammt praktisch.

Mercurial ist ein verteiltes Versionsverwaltungssystem. Links zu Mercurial: - Mercurial Webseite.