Mercurial vs. Git

Git und Mercurial sind beide kostenlose Software-Tools für die verteilte Versionskontrolle und die Verwaltung des Software-Quellcodes.

Sowohl Git als auch Mercurial wurden ungefähr zur gleichen Zeit mit ähnlichen Zielen gestartet. Der unmittelbare Anreiz war die Ankündigung von Bitmover im April 2005, die kostenlose Version von BitKeeper zurückzuziehen, die für die Versionskontrollanforderungen des Linux-Kernel-Projekts verwendet wurde. Der Mercurial-Entwickler Matt Mackall hat beschlossen, ein verteiltes Versionskontrollsystem als Ersatz für die Verwendung mit dem Linux-Kernel zu schreiben. Mackall kündigte Mercurial erstmals am 19. April 2005 an.

Git wurde von Linus Torvalds für die Entwicklung des Linux-Kernels entwickelt, wobei der Schwerpunkt auf der Schnelligkeit liegt. Die Entwicklung von Git begann am 3. April 2005. Das Projekt wurde am 6. April angekündigt und wurde ab dem 7. April selbst gehostet. Die erste Zusammenführung mehrerer Niederlassungen erfolgte am 18. April.

Das Linux-Kernel-Projekt entschied sich für Git anstelle von Mercurial, aber Mercurial wird jetzt von vielen anderen Projekten verwendet.

Vergleichstabelle

Git versus Mercurial Vergleichstabelle
Git Mercurial
Eingebauter WebserverNeinJa
Hooks vor / nach dem EventJaJa
Konvertierungen am ZeilenendeJaJa
StichworteJaJa
Internationale UnterstützungTeilweiseJa
Datei umbenennenJa (implizit)Ja
Umbenennen von Dateien zusammenführenJaJa
Symbolische LinksJaJa
Open SourceJaJa
Signierte RevisionenJaJa
Revisions-IDsSHA-1-HashesZahlen, SHA-1-Hashes
Atomic CommitsJaJa
GeschichtsmodellSchnappschussÄnderungssatz
Repository-GrößeO (Patch) (Big O-Notation)O (Patch) (Big O-Notation)
ParallelitätsmodellVerschmelzenVerschmelzen
BetriebssystemeUnix-ähnlich, Windows, Mac OS X.Unix-ähnlich, Windows, Mac OS X.
BühnenbereichJaNein
Externer ZweigJaNein
KostenKostenlosKostenlos
RCS-SchlüsselwortJa, aber nicht empfohlenüber gebündeltes Plugin
Flache Kasse / KlonJaBugzilla-Erweiterung
Verfolgung von Datei- / VerzeichnisnamenErkennung umbenennenTracking umbenennen
Unterverzeichnis Checkout / KlonNeinNein
Repository-ModellVerteiltVerteilt
Erlaubnis behaltenNur AusführungsbitNur Ausführungsbit
NetzwerkprotokolleBenutzerdefiniert, Benutzerdefiniert über SSH-, Rsync-, HTTP- und E-Mail-BundlesHTTP, benutzerdefiniert über SSH, E-Mail-Bundles (mit Standard-Plugin)
Entwickelt vonJunio ​​Hamano, Linus TorvaldsMatt Mackall
Instandgehalten vonJunio ​​HamanoMatt Mackall
Geschrieben inC, Bourne Shell, PerlPython und C.
Tracking zusammenführenJaJa
Bug Tracker IntegrationNeinTrac (via Plugin)
LizenzGPL v2GPL v2
Webseitegit-scm.comwww.selenic.com/mercurial
BetriebssystemPOSIX, schlechtere Windows-UnterstützungUnix-ähnlich, Windows, Mac OS X.
Einführung (aus Wikipedia)Git ist ein kostenlos verteiltes Revisionskontroll- oder Software-Quellcode-Verwaltungsprojekt mit Schwerpunkt auf Schnelligkeit. Git wurde ursprünglich von Linus Torvalds für die Linux-Kernel-Entwicklung erstellt.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.
ArtRevisionskontrolleRevisionskontrolle

Designziele

Zu den wichtigsten Designzielen von Mercurial gehören hohe Leistung, Skalierbarkeit, eine serverlose, vollständig verteilte kollaborative Entwicklung, eine robuste Verarbeitung von Nur-Text- und Binärdateien sowie erweiterte Verzweigungs- und Zusammenführungsfunktionen bei gleichzeitig konzeptioneller Einfachheit. Es enthält eine integrierte Weboberfläche.

Eines der wichtigsten Designziele von Linus Torvalds für Git war die Geschwindigkeit und Effizienz des Betriebs. Weitere Entwurfskriterien waren strenge Schutzmaßnahmen gegen versehentliche oder böswillige Korruption.

Projekte mit Git vs Projekte mit Mercurial

Einige hochkarätige Softwareprojekte verwenden Git jetzt zur Revisionskontrolle, insbesondere der Linux-Kernel, Perl, Samba, X.org Server, Qt (Toolkit), OLPC-Kernentwicklung (One Laptop per Child), Ruby on Rails-Webframework und VLC, YUI, Merb, Wein, 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 und OpenSolaris von Sun Microsystem und die Opensource-Software von Oracle wie Btrfs.

Git vs Mercurial Portability

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

Git wurde 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 herunterladbare Installationsprogramme zum Testen bereit. Einige Befehle sind noch nicht in den GUIs verfügbar und müssen über die Befehlszeile aufgerufen werden.
  • Git läuft auch auf Cygwin (einer POSIX-Emulationsebene), obwohl es merklich langsamer ist, insbesondere bei Befehlen, die als Shell-Skripte geschrieben wurden.

Benutzeroberfläche für Git vs Mercurial

Alle Operationen von Mercurial werden als Schlüsselwortoptionen für das Treiberprogramm hg aufgerufen, ein Verweis auf das chemische Symbol des Elements Quecksilber. GUI-Schnittstellen für Mercurial umfassen Hgk (Tcl / Tk). Dies ist als Mercurial-Erweiterung implementiert und Teil der offiziellen Version. Dieser Viewer zeigt das gerichtete azyklische Diagramm der Änderungssätze eines Mercurial-Repositorys an. Dieser Viewer kann über den Befehl 'hg view' aufgerufen werden, wenn die Erweiterung aktiviert ist. hgk basierte ursprünglich auf einem ähnlichen Tool 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.

Verwandte Mercurial-Tools umfassen:

  • Verwandte Tools zum Zusammenführen sind (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 Plugin 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.

Zu den Alternativen zum Ausführen von Git über eine GUI gehören:

  • git-cvsserver (emuliert einen CVS-Server und ermöglicht die Verwendung von Windows CVS-Clients)
  • Eclipse IDE-basierter Git-Client, basierend auf einer reinen Java-Implementierung der Git-Interna: egit
  • Die NetBeans IDE-Unterstützung für Git befindet sich in der Entwicklung.
  • Eine Windows Explorer-Erweiterung (ein TortoiseCVS / TortoiseSVN-ähnliches) wurde bei TortoiseGit und Git Extensions gestartet. Dies ist eine Explorer-Erweiterung sowie eine eigenständige GUI und ein Visual Studio 2008-Plug-In

Ähnliche Videos

Ähnlicher Artikel