SourceControl mit Mercurial für Singles

Bei meinem aktuellen Job bin ich in einer Umgebung gelandet, in der für die Softwareentwicklung keine Quellcodeverwaltung eingesetzt wird – sozusagen der Albtraum eines professionellen Softwareentwicklers.

Um nicht ganz ohne die gewohnten Features wie Versionshistorie und Backup dazustehen, habe ich mir kurzentschlossen ein eigenes Mini-System aufgesetzt, das mir alle notwendigen Features bietet, ohne dass ich erst groß Überzeugungsarbeit bei der IT leisten muss, mir doch bitte einen Server aufzusetzen.
Zur Verfügung habe ich ein Notebook mit lokalen Admin-Rechten und ein persönliches Netzlaufwerk, letzteres wird angeblich sogar gesichert.
Die Wahl fiel hierbei auf Mercurial, ein verteiltes Quellcodeverwaltungssystem, das einfach aufzusetzen und zu bedienen ist und vor allem ohne zentralen Server auskommt. Und so geht’s:

Installation

1) Download der notwendigen Software von der offiziellen Seite http://mercurial.selenic.com/, am besten nicht den „Download now“-Button verwenden, sondern sich die ganze Liste anzeigen lassen. Da gibt’s auch Installer, die ohne Admin-Rechte auskommen

2) Die weiter, weiter, weiter-Installation ausführen. Ist absolut deppensicher. Danach hat man sowohl den Kommandozeilenclient als auch (unter Windows) TortoiseHG installiert.

3) Für den Kommandozeilenclient empfehle ich, sich dieses PDF-Cheat-Sheet zu ziehen, das alle wichtigen Kommandos übersichtlich zusammenfasst.

Verwendung

Für das Beispiel nehme ich an, dass mein Quellcode lokal unter c:\krempel\ liegt, und ich als x:\ ein Netzlaufwerk zur Verfügung habe.

1) Zuerst wird im vorhandenen Verzeichnis c:\krempel\ ein Repository erzeugt. Dazu eine Kommandozeile öffnen und in das Verzeichnis wechseln. Dort wird die Initialisierung gestartet:

hg init

2) Falls schon Quellcodedateien vorhanden sind, diese als allererste Version hinzufügen und
einchecken:

hg addremove
hg commit -u <username>

Das zweite Kommando öffnet ein Notepad-Fenster, in das man einen Eincheckkommentar eingeben kann. Nach save&close ist das Checkin erledigt. <username> ersetzt man beispielsweise durch den Namen, mit dem man sich eh am Rechner angemeldet hat.

3) Führt man jetzt eine Änderung durch, kann man mit

hg status

anzeigen lassen, was sich alles geändert hat. Will man die Änderungen einchecken, wird erneut ein

hg commit -u <username>

ausgeführt

4) Jetzt haben wir schon 2 Versionen unseres Programms im Repository.

hg log

listet alle Versionen, zwischen denen man hin- und herhüpfen kann. In der ersten Zeile jedes Blocks wird mit ‚changeset‘ die Nummer des sets geliefert (die Zahl vor dem Doppelpunkt, danach kommt ein langer Identifier).

5) Hat man nun das Bedürfnis, zwischen verschiedenen Versionen zu wechseln, beispielsweise um eine Änderung rückgängig zu machen, reicht ein

hg update <changesetnummer>

um zu einer älteren Version zurückzukehren.

hg update tip

Führt immer zur aktuellsten Version, die im Repository vorhanden ist.
Soweit so gut, jetzt habe ich auf meinem lokalen Rechner erst einmal eine funktionierende Quellcodeverwaltung. Fehlt nur noch ein Backup auf einem Netzlaufwerk, in meinem Fall ist dies als x:\ eingebunden.

6) Zuerst einmal auf das Netzlaufwerk wechseln und dort ein neues Repository einrichten

hg init projektsicherung

Legt ein neues Verzeichnis namens ‚projektsicherung‘ an und initialisiert es direkt als neues Repository.

7) Jetzt noch die Dateien aus dem lokalen Repository in das Netzlaufwerk übertragen:

hg pull c:\krempel\

Dieses Kommando zieht das lokale Repository ins Netz. Man kann die gleiche Aktion auch umgekehrt erreichen, indem man unter c:\krempel\ folgendes Kommando ausführt:

hg push x:\projektsicherung\

8) Wenn man mag, kann man noch den Dateistand des Netzlaufwerks auf die aktuelle Version bringen, indem man auf dem Netzlaufwerk

hg update tip

ausführt. Für die reine Sicherung ist dies aber nicht notwendig.

Damit hat man die absolute Minimalistenlösung einer leidlich sicheren Quellcodeverwaltung aufgesetzt. Wer sich für mehr Details interessiert, dem empfehle ich das erstklassige Tutorial http://hginit.com/ von Joel Spolsky. Dort gibt es auch ein super Video, wenn man mal eine Argumentationshilfe bei Kollegen oder Vorgesetzten braucht.

Waidner IT Solutions