Verteilte Versionsverwaltung
Ein Vergleich von Darcs, Git, Mercurial und Bazaar
von Jan Schütze
[zurück] ... [Übersicht] ... [vor]
Mercurial
Mercurial wurde etwa zur selben Zeit (2005) mit ähnlicher Motivation wie Git von Matt Mackall entwickelt. Geschrieben wurde Mercurial in
Python, lediglich die diff-Komponente ist in C geschrieben. Mercurial arbeitet mit einem Change Set Konzept, d.h. es werden die Änderungen
an Dateien gegenüber der vorherigen Version gespeichert und nicht die neue Datei als Ganzes. Dadurch werden neue Entwicklungszweige einfach
durch das Klonen eines vorhandenen Zweiges erstellt und am Ende wiederzusammengefügt. Mercurial besitzt keine eigene Möglichkeit zur
Bearbeitung von Konflikten, die beim Mergen auftreten können und ist daher auf fremde Software (z.B. kdiff3) angewiesen.
Bekannte Projekte die auf Mercurial setzen sind unter anderem Mozilla, Sun (NetBeans, OpenJDK, OpenSolaris). Der Zugriff auf entfernte
Repositorys kann auch hier mittels gängiger Netzwerkprotokolle erfolgen.
Verfügbarkeit
Für alle gängigen Betriebssysteme sind entsprechende Versionen vorhanden, oftmals auch Grafische Oberflächen. Mercurial bietet bereits ein
internes Webinterface, auch Plugins für Eclipse, Netbeans sowie Visual Studio werden angeboten. Zum Verbreiten eigener Projekte gibt es außerdem auch hier
Hostingdienste (z.B. Bitbucket). Für Umsteiger bietet Mercurial Konvertierungsmöglichkeiten von
diversen anderen Versionsverwaltungen.
Grundlegende Kommandos
Aktion |
Kommando |
initialisieren |
hg init |
Update |
hg update |
Datei hinzufügen |
hg add |
Datei löschen |
hg remove |
Commit |
hg commit |
Pull |
hg pull |
Push |
hg push |
Merge |
hg merge |
Clone erzeugen |
hg clone |
Aktuelle Änderungen |
hg diff |
Änderungsgeschichte |
hg log |
[zurück] ... [Übersicht] ... [vor]