Mercurial ist ein verteiltes Versionsverwaltungssystem.
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.
Use Node:
⚙ Babcom is trying to load the comments ⚙
This textbox will disappear when the comments have been loaded.
If the box below shows an error-page, you need to install Freenet with the Sone-Plugin or set the node-path to your freenet node and click the Reload Comments button (or return).
If you see something like Invalid key: java.net.MalformedURLException: There is no @ in that URI! (Sone/search.html)
, you need to setup Sone and the Web of Trust
If you had Javascript enabled, you would see comments for this page instead of the Sone page of the sites author.
Note: To make a comment which isn’t a reply visible to others here, include a link to this site somewhere in the text of your comment. It will then show up here. To ensure that I get notified of your comment, also include my Sone-ID.
Link to this site and my Sone ID: sone://6~ZDYdvAgMoUfG6M5Kwi7SQqyS-gTcyFeaNN1Pf3FvY
This spam-resistant comment-field is made with babcom.