Mercurial Tutorial
Hier findet Ihr ein kleines Mercurial Tutorial, welches den Einstieg in dieses sehr nützliche VCS (Version Control System) erleichtern soll. Vom Prinzig her ähnelt es dem Euch vielleicht schon bekannten Subversion. Die Befehle basieren auf dem “Mercurial: The Definitive Guide” von Bryan O’Sullivan, ein 1A Nachschlagewerk für alles was mit Mercurial zu tun hat. Sehr praktische Referenzkarten zum Ausdrucken findet Ihr hier.
Schritt 1: Installation
Die Setup-Dateien von Mercurial und die zur Installation nötigen Schritte befinden sich hier.
Schritt 2: Checkout
Es folgt ein Beispiel, um mein Projekt “Twit2Busch” von der Google Code Projektseite auszuchecken. Öffnet dafür zunächst einen Terminal (Konsole / Eingabeaufforderung) und wechselt dort in den Ordner, in welchen Ihr den Projektordner “twit2busch” herunterladen wollt. Nun benutzt Ihr folgenden Befehl für den Checkout:
hg clone https://twit2busch.googlecode.com/hg/ twit2busch
Schritt 3: Eigene Änderungen hochladen
So, Ihr habt also Bugs behoben oder neue Features hinzugefügt? Ausgezeichnet! Um sie mit anderen zu teilen führt Ihr im twit2busch Verzeichnis folgende Befehle aus:
hg commit -u "Username <ich@email.me>" -m "Hier beschreibe ich meine Änderungen"
Gebt an, was Ihr verändert habt.
hg push https://USER:PASSWORD@twit2busch.googlecode.com/hg/
Dieser Befehl schiebt die Dateien auf den Server rüber. Das Commiten alleine reicht nicht aus, sondern sucht und beschreibt lediglich die Änderungen.
Schritt 4: Das lokale Verzeichnis auf den aktuellen Stand bringen
Wer hätte es gedacht, analog zu oben genanntem hg push reicht nun ein simples
hg pull (ohne Angabe der URL)
um die lokalen Dateien auf den aktuellen Stand der Entwicklung zu hieven. Allerdings werden nicht eure evtl. veränderten Dateien direkt überschrieben, sondern die Änderungen in eine neue lokale Revision gepackt. Um Eure Änderungen mit den neuen, soeben heruntergeladenen Dateien zu mischen (engl. to merge), gebt folgendes ein:
hg merge
Was ist passiert? Kurz gesagt, Eure lokalen Dateien und die neu heruntergeladenen wurden an den Stellen, wo Veränderungen auftraten, vermischt. Wenn dies an jeweils unabhängigen Stellen geschah, kein Problem. Wenn Ihr jedoch Zeilen geändert habt, die auch in der neuen Version geändert wurden, entsteht ein “Konflikt”. Dies ist jedoch bei guter Absprache ebenso gut vermeidbar, ansonsten finden sich hier detaillierte Vorschläge zum weiteren Vorgehen und viele weitere Infos zum Thema mergen.
Nun könnt Ihr wieder wie gehabt committen und pushen, damit Eure Änderungen in den aktuellen Entwicklungszweig mit einfließen. It’s that simple
!