Ein Mercurial Repository einrichten.

(Last Updated On: 24. Juli 2015)

Mercurial ist nun das dritte Versionskontrollsystem, welches ich auf diesem Blog behandle. In der Vergangenheit habe ich euch gezeigt, wie ihr ein Subversion- oder Git-Repository auf einem Linux-Server einrichtet und jeweils entweder von einem Linux- oder von einem Windows-Client aus auf dieses Repository zugreift. Auch für Mercurial werden dies nun so handhaben.

Als erstes installieren wir die benötigten Binaries

apt-get install mercurial meld

Nach der installation können Sie mercurial konfigurieren über die Konfigurationsdatie unter /etc/mercurial/hgrc. das sind die systemweiten Konfigurationsoptionen. userspezifische Einstelungen werdne unter ~/.hgrc gespeichert.

Sie sollten für jeden User, der an dem Repository mitarbeitet, auf dem Serve rienen User erstellen, der sein eigenes Home-Verzeichnis (~) bekommt. Der User bearbeitet dann seine jeweilige ~/.hgrc und konfiguriert diese etwa so

# Mercurial configuration file
# See hgrc(5) for more information

# User Interface settings
[ui]
username= <Vorname Nachname> <<your.email@yourdomain.com>> (einmal spitze klammer lassen)
editor=<editor wie beispielsweise nano oder vi>
merge=meld

# Enabled extensions
[extensions]
hgext.gpg=
hgext.convert=

# GPG extension settings
[gpg]
key=<your private gpg key>

In die Datei ~/.hgrc sollte etwas rein wie.

Jetzt erstellen wir auf dem Server ein neues Mercurial Projekt im Ordner /source/projekt

mkdir -p /source/projekt
cd /source/projekt
hg init

Wenn sich in diesem ordner bereits Dateien befinden, werden diese sofort zum REpository hinzugefügt. Wenn bestimmte Dateien ignoriert werden sollen, könnt ihr zuvor ein Pattern-File namens .hgignore schreiben, welche alle Dateien ignroeirt, die einem bestimmten Muster entsprechen. Hier ein Beispiel für eine solche Musterdatei

syntax: glob
*.orig
*.rej
*~
*.o
tests/*.err

syntax: regexp
.*\#.*\#$

Der Befehl

hg status

zeigt euch dabei alle nicht-ignorierten Dateien an.

Wenn ihr dann irgendwann einmal Manuell alle Dateien in diesem Ordner einfügen wollt, könnt ihr das folgendermaßen machen

hg add
hg commit
hg parents

Dieses Repository  könnt ihr jetzt auf einem x-beliebigen Linux-Rechner in ein Arbeitsverzeichnis auschecken. Dazu müsst ihr natürlich erst Public Key Authentication für den Linux-Cleint konfiguriert haben. Das hießt der User, als den ihr euch von eurem Linux-Client über SSH aus auf dem entfernten REpository-Server einloggen wollt, muss sich mit eurem Key anmelden können. Ist dies passiert, müsst ihr euch zuvor einmal ganz normal per SSH beim Repository-Server anmelden, damit euer SSH-Client den Repository-Server als known Host einträgt.

Auf dem Rechner, von dem aus ihr euch auf den Repository-Server anmledne wollt, müsst ihr die Datei ~/.ssh/config erstellen bzw. bearbeiten und dort folgende Konfiguration tätigen

Host <hostname des repositorys>
HostName <FQDN repository-server>
Port <SSH-Port repository Server>
User <User als den ihr euch anmelden wollt>

Der Befehl

hg clone ssh://user@<FQDN>:<Port>//pfad/zum/repository

holt die neuste Version des Repositores ab. Der befehl

hg pull

würde dann die Änderungen anderer Benutzer, die ggf. ebenfalls changes gemacht haben, zusätzlich baholen. Die eigenen Ädnerungen kann man dann mit den Änderungen der anderen User zusammenführen über

hg merge

Wenn die Änderungen zusammengeführt wurden, kann man die aktuelle, zusammengefüphrte Version des Repositories wieder hochladen mit

hg commit

Bleibt noch die Frage zu klären, wie ihr das Repository von einem Windows-Rechner aus abholt. Auch hier gehen wir davon aus, dass ihr Public Key authenticaiton für den Windows-Client aktiviert habt und euren privaten Schlüssel auf dem Windows-Rechner über pageant.exe geladen habt, wie es im verlinkten Blog-post beschrieben wird. Ihr vebrindet euch als erstes ganz normal einmal mittels putty auf den Server auf dem das Repository ist, damit putty den Host als bekannt einträgt. Als Nächstes müsst ihr euch TortoiseHg runterladen und installieren. Dann müsst ihr im Ordner %USERPROFILE%\Mercurial.ini (falls nicht vorhanden, anlegen) folgendes Eintragen.

ssh="C:\pfda\zur\plink.exe"

Jetzt erstellt ihr einen Windows-Ordner eurer Wahl, in welchen ihr die aktuelel Verison des Repositories auschecken wollt, beispielswiese C:\Source. Ölffne den Ordner, rechtsklickt in das leere Explorer-Fenster des Ordners und wählt TortoiseHg / Clone…

Im neuen Fenmster gebt ihr als Quelle folgendes ein:

ssh://<username>@<FQDN>:<Port>//<Pfad/zum/Repository>

Beachtet, dass ich hier fett hinter der Angabe des Ports zwei Schrägstriche gemacht habe. Wenn ihr nur einen einzigen Schrägstrich macht, dann sucht euer Mercurial vom Home-Verzeichnis des nutzers aus nach dem Repository. Würde ich also eingeben ssh://dafrk@dafrk-blog.com:27001/source/test, würde Mercurial im Verzeichnis /home/dafrk/source/test nach dem Mercurial-Repository suchen, wo man es natürlich nicht finden wird.

 

 

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

DaFRK

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

Das könnte Dich auch interessieren...

Kommentar verfassen

This site uses Akismet to reduce spam. Learn how your comment data is processed.