Mercurial vs. Git

Git und Mercurial sind sowohl freie Softwarewerkzeuge für die verteilte Revisionskontrolle als auch für die Verwaltung des Software-Quellcodes.

Sowohl Git als auch Mercurial wurden ungefähr zur gleichen Zeit mit ähnlichen Zielen gestartet. Der unmittelbare Anstoß war die Ankündigung von Bitmover im April 2005, die kostenlose Version von BitKeeper zurückzuziehen, die für die Versionskontrollanforderungen des Linux-Kernelprojekts verwendet wurde. Der Entwickler von Mercurial, Matt Mackall, entschied sich für ein verteiltes Versionskontrollsystem als Ersatz für die Verwendung mit dem Linux-Kernel. Am 19. April 2005 gab Mackall erstmals Mercurial bekannt.

Git wurde von Linus Torvalds für die Linux-Kernel-Entwicklung mit dem Schwerpunkt auf Schnelligkeit entwickelt. Die Entwicklung von Git begann am 3. April 2005. Das Projekt wurde am 6. April angekündigt und wurde am 7. April zur Selbsthosting-Gruppe. Die erste Zusammenlegung mehrerer Niederlassungen erfolgte am 18. April.

Das Linux-Kernelprojekt hat sich dafür entschieden, Git anstelle von Mercurial zu verwenden, aber Mercurial wird jetzt von vielen anderen Projekten verwendet.

Vergleichstabelle

Git versus Mercurial Vergleichstabelle
GitMercurial
Eingebauter Webserver Nein Ja
Hooks vor / nach dem Ereignis Ja Ja
Konvertierungen am Zeilenende Ja Ja
Stichworte Ja Ja
Internationale Unterstützung Teilweise Ja
Datei umbenannt Ja (implizit) Ja
Umbenennen von Dateien Ja Ja
Symbolische Links Ja Ja
Open Source Ja Ja
Signierte Revisionen Ja Ja
Versions-IDs SHA-1-Hashes Zahlen, SHA-1-Hashes
Atomic begeht Ja Ja
Geschichtsmodell Schnappschuss Änderungssatz
Repository-Größe O (Patch) (Big O-Notation) O (Patch) (Big O-Notation)
Gleichzeitigkeitsmodell Verschmelzen Verschmelzen
Betriebssysteme Unix-artig, Windows, Mac OS X Unix-artig, Windows, Mac OS X
Bühnenbereich Ja Nein
Externe Zweigstelle Ja Nein
Kosten Kostenlos Kostenlos
RCS-Schlüsselwort Ja, aber nicht empfohlen über das mitgelieferte Plugin
Flache Kasse / Klon Ja Bugzilla-Erweiterung
Datei- / Verzeichnisnamenverfolgung Erkennung umbenennen Tracking umbenennen
Unterverzeichnis checkout / clone Nein Nein
Repository-Modell Verteilt Verteilt
Erlaubnis einhalten Nur Ausführungsbit Nur Ausführungsbit
Netzwerkprotokolle custom, custom über ssh, rsync, HTTP, E-Mail-Pakete HTTP, benutzerdefiniert über SSH, E-Mail-Pakete (mit Standard-Plugin)
Entwickelt von Junio ​​Hamano, Linus Torvalds Matt Mackall
Instandgehalten von Junio ​​Hamano Matt Mackall
Geschrieben in C, Bourne Shell, Perl Python und C
Tracking zusammenführen Ja Ja
Bug Tracker-Integration Nein Trac (via Plugin)
Lizenz GPL v2 GPL v2
Webseite git-scm.com www.selenic.com/mercurial
OS POSIX, schlimmer Windows-Unterstützung Unix-artig, Windows, Mac OS X
Einführung (aus Wikipedia) Git ist ein kostenloses verteiltes Revisionskontroll- oder Software-Quellcode-Verwaltungsprojekt mit dem Schwerpunkt, schnell zu sein. Git wurde ursprünglich von Linus Torvalds für die Linux-Kernel-Entwicklung entwickelt. Mercurial ist ein plattformübergreifendes, verteiltes Revisionskontrolltool für Softwareentwickler. Es wird hauptsächlich mit der Programmiersprache Python implementiert, enthält jedoch eine in C geschriebene binäre diff-Implementierung.
Art Revisionskontrolle Revisionskontrolle

Inhalt: Mercurial vs Git

  • 1 Gestaltungsziele
  • 2 Projekte mit Git vs. Projekte mit Mercurial
  • 3 Git vs Mercurial Portabilität
  • 4 Benutzeroberfläche für Git vs Mercurial
  • 5 Verwandte Videos
  • 6 Referenzen

Ziele gestalten

Zu den wichtigsten Designzielen von Mercurial zählen hohe Leistung, Skalierbarkeit, Serverunabhängige, vollständig verteilte kollaborative Entwicklung, robuste Handhabung von Nur-Text- und Binärdateien sowie erweiterte Verzweigungs- und Zusammenführungsfunktionen, die konzeptionell einfach bleiben. Es enthält eine integrierte Weboberfläche.

Eines der wichtigsten Konstruktionsziele von Linus Torvalds für Git war die Geschwindigkeit und Effizienz der Abläufe. Andere Entwurfskriterien waren starke Schutzmaßnahmen gegen Korruption, entweder versehentlich oder böswillig.

Projekte mit Git vs. Projekte mit Mercurial

Mehrere hochkarätige Softwareprojekte verwenden jetzt Git für die Revisionskontrolle, insbesondere den Linux-Kernel, Perl, Samba, X.org Server, Qt (Toolkit), eine Entwicklung für einen Laptop pro Kind (OLPC), das Ruby on Rails-Webframework, VLC , YUI, Merb, Wine, SWI Prolog, GNOME, GStreamer, DragonFly BSD und die mobile Android-Plattform.

Zu den Projekten, die Mercurial verwenden, gehören Adblock Plus, Aldrin, Audacious, Dovecot-IMAP-Server, GNU Octave, NxOS, Nuxeo, Growl, MoinMoin-Wiki-Software, Mozilla, Mutt (E-Mail-Client), Netbeans (IDE), OpenJDK, Python, SAGE, OpenSolaris und die Opensource-Software von Oracle wie Btrfs.

Git vs Mercurial Portabilität

Mercurial wurde ursprünglich für Linux entwickelt. Es wurde auf Windows, Mac OS X und die meisten anderen Unix-ähnlichen Systeme portiert. Mercurial ist hauptsächlich ein Befehlszeilenprogramm.

Git wird hauptsächlich unter Linux entwickelt, kann aber auch auf anderen Unix-ähnlichen Betriebssystemen wie BSD und Solaris verwendet werden.

Git läuft auch unter Windows. Es gibt zwei Varianten:

  • Ein nativer Microsoft Windows-Port namens msysgit steht kurz vor dem Abschluss. Ab Februar 2009 stehen Installationsprogramme zum Download bereit. Einige Befehle sind noch nicht über die GUIs verfügbar und müssen von der Befehlszeile aus aufgerufen werden.
  • Git läuft auch auf Cygwin (einer POSIX-Emulationsebene), obwohl es merklich langsamer ist, insbesondere für Befehle, die als Shellskripts geschrieben wurden.

Benutzeroberfläche für Git vs Mercurial

Alle Operationen von Mercurial werden als Schlüsselwortoptionen für das Treiberprogramm hg aufgerufen, eine Referenz auf das chemische Symbol des Elements Quecksilber. GUI-Schnittstellen für Mercurial beinhalten Hgk (Tcl / Tk). Diese wird als Mercurial-Erweiterung implementiert und ist Teil der offiziellen Version. Dieser Viewer zeigt den gerichteten azyklischen Graphen der Changesets eines Mercurial-Repositorys an. Dieser Viewer kann mit dem Befehl 'hg view' aufgerufen werden, wenn die Erweiterung aktiviert ist. hgk basierte ursprünglich auf einem ähnlichen Werkzeug für git namens gitk. Es gibt einen hgk-Ersatz namens hgview, der in reinem Python geschrieben ist und sowohl gtk- als auch qt-Schnittstellen bietet.

Zu den verwandten Mercurial-Tools gehören:

  • Zugehörige Werkzeuge zum Zusammenführen von include (h) gct (Qt) und Meld.
  • Die Konvertierungserweiterung ermöglicht den Import aus CVS-, Darcs-, Git-, GNU Arch-, Monotone- und Subversion-Repositorys.
  • Netbeans IDE unterstützt Mercurial ab Version 6.
  • Tortoise Hg bietet eine benutzerfreundliche Windows-Menüoberfläche mit Rechtsklick.
  • VisualHG ist ein Plug-In für Mercurial Source Control Provider für MS Visual Studio 2008.
  • Mercurial Eclipse ist ein Plugin für Eclipse-Teamanbieter für Eclipse 3.3 und höher.

Alternativen zum Ausführen von Git über eine GUI sind:

  • git-cvsserver (emuliert einen CVS-Server, wodurch Windows CVS-Clients verwendet werden können)
  • Eclipse IDE-basierter Git-Client, basierend auf einer reinen Java-Implementierung von Gits Interna: egit
  • Die Unterstützung von NetBeans IDE für Git befindet sich in der Entwicklung.
  • Bei TortoiseGit und Git Extensions wurde eine Windows Explorer-Erweiterung (ein TortoiseCVS / TortoiseSVN-Lookalike) gestartet, die eine Explorer-Erweiterung sowie eine eigenständige Benutzeroberfläche und ein Visual Studio 2008-Plug-In darstellt

Ähnliche Videos

Verweise

  • wikipedia: Git_ (Software)
  • wikipedia: Mercurial_ (Software)
  • Mercurial-Entwickler Martin Geisler vergleicht die Features von Git und Mercural eingehend