Mercurial

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Mercurial

New Mercurial logo.svg
Basisdaten

Entwickler Matt Mackall u. v. a.
Erscheinungsjahr 19. April 2005[1]
Aktuelle Version 4.9[2]
(1. Februar 2019)
Betriebssystem Linux, macOS, Windows etc.
Programmiersprache Python, C
Kategorie Versionsverwaltung
Lizenz GPLv2+[3] (Freie Software)
deutschsprachig ja
www.mercurial-scm.org

Mercurial ist ein plattformunabhängiges, verteiltes Versionskontrollsystem zur Software-Entwicklung. Es wird nahezu vollständig in Python entwickelt: lediglich eine diff-Implementierung, die mit binären Dateien umgehen kann, ist in C umgesetzt.[4] Mercurial wird primär über die Kommandozeile benutzt; alle Kommandos beginnen mit „hg“, dem Elementsymbol von Quecksilber (englisch mercury).

Entwicklungsschwerpunkte von Mercurial sind Effizienz, Skalierbarkeit und robuste Handhabung von Text- und Binärdateien. Bei Mercurial wird das Repository des Projektes, an dem man entwickeln will, „geklont“, also eine lokale Kopie erstellt. Auf dieser lokalen Kopie stehen dann die üblichen Funktionen zur Verfügung, beispielsweise das Erstellen neuer Revisionen, changeset genannt.

Die Fähigkeit, Entwicklungszweige zu erstellen und zusammenzuführen (engl.: branching und merging), ist fester Bestandteil von Mercurial. Eine integrierte Web-Schnittstelle steht zur Verfügung; Drittanbieter stellen grafische Frontends oder Plugins für Entwicklungsumgebungen zur Verfügung.

Geschichte[Bearbeiten | Quelltext bearbeiten]

Am 19. April 2005 wurde Mercurial von Matt Mackall auf der Linux-Kernel-Mailingliste angekündigt.[5] Ausschlaggebend war die Ankündigung der Firma BitMover, die z. B. für den Linux-Kernel als Versionskontrollsystem eingesetzte Software BitKeeper nicht mehr in einer kostenlosen Version bereitzustellen. Ungefähr zur gleichen Zeit hatte Linus Torvalds damit begonnen, ein eigenes Projekt namens Git zu starten, welches ähnliche Ziele verfolgt wie Mercurial.

Offiziell wird für den Linux-Kernel Git benutzt,[6] allerdings gibt es auch Kernel-Entwickler, die Mercurial einsetzen.[7]

Verbreitung[Bearbeiten | Quelltext bearbeiten]

Mercurial wird von vielen bekannten Software-Projekten und Firmen eingesetzt. Unter anderem findet es Einsatz bei Facebook,[8] Mozilla (Firefox, Thunderbird),[9][10][11] SourceForge,[12][13] Google Inc. (Google Code[14]), Atlassian (Bitbucket), Microsoft (CodePlex[15]), Oracle (OpenJDK[16][17]), Xen,[18] NetBeans IDE,[19] Python,[20][21] Dovecot,[22] und Nginx.[23]

Abbildung 1: Einige wichtige Operationen von Mercurial und ihre Beziehungen.

Grafische Oberflächen[Bearbeiten | Quelltext bearbeiten]

Für Microsoft Windows und Gnome/Nautilus steht mit der grafischen Oberfläche TortoiseHg, und macOS mit MacHg und Murky, ein jeweils einfach zu bedienendes Frontend zur Verfügung, das die Benutzung von Mercurial ohne Kommandozeilenbefehle erlaubt.

Verschiedene integrierte Entwicklungsumgebungen wie Netbeans, Eclipse, Android Studio, Delphi oder der Qt Creator unterstützen Mercurial direkt aus der grafischen Oberfläche, in der Regel durch ein Plug-in, welches entweder mitgeliefert oder nachträglich installiert wird. MercurialEclipse erlaubt dabei auch das Arbeiten mit Patch Queues (mq).

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

 Commons: Mercurial – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. lkml.org.
  2. Release Notes. Abgerufen am 10. März 2019 (englisch).
  3. License
  4. Matt Mackall, Towards a Better SCM: Revlog and Mercurial (PDF; 118 kB), Ottawa Linux Symposium Proceedings, 2006.
  5. Mercurial v0.1 – a minimal scalable distributed SCM (Memento2des Originals vom 5. August 2012 im Webarchiv archive.is) i Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.ussg.iu.edu
  6. siehe Versionsverwaltungssystem des Linux-Kernels
  7. siehe beispielsweise Versionsverwaltungssystem des LinuxTV-Projekts
  8. Scaling Mercurial at Facebook
  9. Mozillazine Version Control System Shootout Redux Redux (en) (Memento vom 23. Februar 2008 im Internet Archive)
  10. Working with Mozilla source code (en) (Memento des Originals vom 26. April 2011 im Internet Archive) i Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/developer.mozilla.org
  11. Mozilla (hg) Repo
  12. Mercurial – sourceforge (Memento des Originals vom 6. September 2011 im Internet Archive) i Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/sourceforge.net
  13. Forge / documentation / Mercurial - Beta (Memento des Originals vom 23. Oktober 2011 im Internet Archive) i Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/sourceforge.net
  14. David Baum: Mercurial Support for Project Hosting on Google Code. In: The Google Code Blog. 24. April 2009, archiviert vom Original am 26. April 2009; abgerufen am 26. Januar 2010.
  15. CodePlex now supporting native Mercurial (en) (Memento des Originals vom 7. Juli 2013 auf WebCite) i Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/blogs.msdn.com
  16. OpenJDK Mercurial Transition Final Update (en) (Memento des Originals vom 8. März 2009 im Internet Archive) i Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/weblogs.java.net
  17. OpenJDK (hg) Repo
  18. XenSource: Xen Distribution mercurial (hg) Repositories Browser (en)
  19. NetBeans (hg) Repo
  20. Migrating from svn to Mercurial (en)
  21. Python Repo index
  22. Dovecot Mercurial Repo Index
  23. Nginx Mercurial Repo