Mercurial Brücke zu Subversion: Mercurial lokal, Subversion auf dem Server

Falls man nicht PlatinVC nutzen will/kann, man, noch viel schlimmer, einen Subversion-Server benutzen muss, kann man trotzdem mercurial lokal mit all seinen Vorteilen nutzen. Änderungen können erst lokal eingecheckt werden und dann global zum Subversionserver gepuscht werden. Aus der Sicht des Servers erkennt man keinen Unterschied.

Vorteil: Man kann lokal viele kleine Schritte versionieren, die das Projekt für andere unkompilierbar werden lassen würden, und branches nach belieben anlegen.

Hat man einen Stand erreicht, bei dem das Projekt wieder kompilierbar ist, kann man alle commits gleichzeitig zum Subversion Server schicken (wobei auch lokal angelegte Branches lokal bleiben können).

So wird das ganze konfiguriert:

(siehe auch:
http://mercurial.selenic.com/wiki/WorkingWithSubversion
http://mercurial.selenic.com/wiki/HgSubversionhg
http://mercurial.aragost.com/kick-start/en/hgsubversion/)

1. hgsubversion Erweiterung installieren:

hg clone http://bitbucket.org/durin42/hgsubversion/ Zielverzeichnis

Als Zielverzeichnis empfehle ich:
hg-Installertionsverzeichnis/hgext/hgsubversion

2. Leeres Projekt anlegen:
(auf diese Weise kann man bei einem Übertragunsabbruch wärend des initialen checkouts den Checkout wieder aufnehmen)
hg init Projektverzeichnis

3. hgrc konfigurieren:
Entweder in der gobal Konfiguration (~/.hgrc) oder in der lokalen im Projekt (.hg/hgrc) hinzufügen:
[extensions]
hgsubversion =hg-Installertionsverzeichnis/Zielverzeichnis

4. installertion testen
Zunächst die Tests für die heruntergeladene Erweiterung:
cd Zielverzeichnis
nose: http://code.google.com/p/python-nose/

Falls nose nicht installiert ist kann man das nachholen:
easy_install nose
Oder die Tests nur mit Python durchführen:
python tests/run.py

5. prüfen, ob hgsubversion aufrufbar ist:
hg version --svn
Es sollte erscheinen:
Mercurial Distributed SCM (...)

Erscheint weiter unten
Subversion 1.5.0 or later required, but no bindings were found
Subvertpy 0.7.4 or later required, but not found

Please install either Subvertpy or the Subversion Python SWIG bindings!
muss man noch die Bindings (Subvertpy) installieren (5a):
5a. Subvertpy installieren:
5a.1. von https://launchpad.net/subvertpy/+download herunterladen

6. Svn Repository auschecken:
Entweder ein branch oder mehr … falls ein Ordner angegeben wird, in dem die SVN-Typische Struktur
/branches
/tags
/trunc

liegt, erkennt das hgsubversion automatisch und gleicht tags und branches ab. Ansonsten wird der übergebene Ordner als branch lokal angelegt.

Initial, und auch später, holt man sich die Änderungen vom Subversionsverver mit:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.