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> <<[email protected]>> (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://[email protected]: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.
Wenn dir dieser Post gefallen hat, teile ihn doch auf Social Media, abonniere und verfolge mich per E-Mail, RSS-Feed, Social Media oder registriere dich auf meiner Seite. Wenn du registriert bist, like den Post bitte, wenn er dir gefallen hat!