Direkt zum Hauptbereich

Erste Schritte mit dem Revision Control System Mercurial

Da ich meine Java-Anwendungen an verschiedenen Systemen entwickle, möchte ich ein Versionsverwaltung-System einsetzen.

Ich habe zu Mercurial gegriffen, ohne tiefere Studien, sondern nur, weil ich gelesen habe, dass es gut sein soll und kein eigener Server-Daemon erforderlich ist. Da ich keine großen Anforderungen habe und jederzeit auf ein anderes System wechseln kann, ist das eine vertretbarer “Auswahlprozess”.

Das “zentrale” Repository halte ich auf meinem FreeBSD-Server. Von bis zu fünf verschiedenen Betriebssystem-Installationen greife ich dann darauf zu. Unter FreeBSD gibt es einen Mercurial-Port, unter OS X lässt es sich über die MacPorts oder Fink installieren, und für Windows gibt es hier einen Installer.

Ich arbeite zur Zeit sicherlich noch ziemlich “ungelenk” mit Mercurial, doch das wird bestimmt noch besser…


Anlegen eines neuen Projektes auf dem Server

Für ein Projekt lege ich auf dem Server erst ein “leeres” Projekt (=Verzeichnis) an.

In diesem Verzeichnis baue ich das Repository mit hg init auf. Falls in dieses Verzeichnis schon Dateien hinein sollen, kopiere ich sie dorthin.

Innerhalb dieses Verzeichnisses auf der obersten Ebene setze ich ein hg add * ab. Mit einem hg commit -m ‘Initialer Commit’ werden die Dateien dann “eingecheckt”.

Auschecken auf dem Client

Mit dem Befehl hg clone lässt sich eine lokale Kopie des Repositories erstellen. Man kann dabei auch mittels SSH kopieren, z. B. hg clone ssh://tom@192.168.2.30//verzeichnis lokalesverzeichnis.


Lokale Änderungen ins zentrale Repository übertragen

Nach getaner Arbeit auf dem Client fügt man aus dem Wurzelverzeichnis der lokalen Kopie mit hg add * und einem anschliessenden hg commit -m ‘Kommentar’ die geänderten Dateien dem lokalen Repository hinzu.

Mit einem hg push, ebenfalls aus dem Wurzelverzeichnis, werden die Dateien dann in das “Master-Repository” übermittelt. Man sieht, dass der Prozess des Übertragens von Quellcode in das (lokale) Repository mehrstufig ist, da muss man sich erst dran gewöhnen.


Von lokalen Repositories vorgenommene Änderungen freigeben

Die von einem lokalen Repository mittels hg push übertragenen Änderungen müssen auf dem zentralen Repository noch frei gegeben werden. Dies geschieht, indem man diese mit hg update übernimmt.

Mit hg stat und hg log kann man sich übrigens immer den Status bzw. die Historie ansehen. Die von Mercurial verwalteten Dateien liegen übrigens teilweise im Verzeichnis .hg/store, man muss sich also nicht wundern, wenn man nach einem Commit/Push nicht den Quellcode da sieht, wo man ihn erwarten würde.


Für Mercurial gibt’s natürlich viele Online-Tutorials, z. B. hier. Ich habe diesen Blog-Eintrag als “Quickstart”-Einstieg und als Stütze meines eigenen Gedächtnisses geschrieben. Es ist auf jeden Fall ratsam, “wenn mal Zeit ist”, ein Tutorial für Mercurial durchzuarbeiten.

Kommentare