Mercurial versus Git

Git en kwikmiddel zijn beide gratis softwaretools voor gedistribueerde revisiecontrole en broncodebeheer van software.

Zowel Git als Mercurial zijn op ongeveer hetzelfde tijdstip begonnen met vergelijkbare doelen. De directe stimulans was de aankondiging in april 2005 door Bitmover dat ze de gratis versie van BitKeeper, die was gebruikt voor de versiebeheervereisten van het Linux-kernelproject, terugtrokken. Mercurial-maker Matt Mackall besloot om een ​​gedistribueerd versiecontrolesysteem te schrijven als vervanging voor gebruik met de Linux-kernel. Mackall heeft Mercurial voor het eerst aangekondigd op 19 april 2005.

Git is gemaakt door Linus Torvalds voor de ontwikkeling van Linux-kernel, met de nadruk op snel zijn. De ontwikkeling van Git begon op 3 april 2005. Het project werd aangekondigd op 6 april en werd self-hosting vanaf 7 april. De eerste fusie van meerdere vestigingen werd gedaan op 18 april.

Het Linux-kernelproject besloot om Git te gebruiken in plaats van Mercurial, maar Mercurial wordt nu door veel andere projecten gebruikt.

Vergelijkingstabel

Git versus Mercurial vergelijkingstabel
Gitkwikmiddel
Ingebouwde webserver Nee Ja
Pre / post-event hooks Ja Ja
Einde van regelconversies Ja Ja
Tags Ja Ja
Internationale ondersteuning partieel Ja
Bestandsnaam wijzigen Ja (impliciet) Ja
Voeg bestandsnamen samen Ja Ja
Symbolische links Ja Ja
Open source Ja Ja
Ondertekende Revisies Ja Ja
Revisie-ID's SHA-1 hashes Nummers, SHA-1 hashes
Atomic commits Ja Ja
Historisch model Momentopname changeset
Repository grootte O (patch) (Big O-notatie) O (patch) (Big O-notatie)
Concurrency model samensmelten samensmelten
Besturingssystemen Unix-achtig, Windows, Mac OS X Unix-achtig, Windows, Mac OS X
Verzamelplaats Ja Nee
Externals tak Ja Nee
Kosten Gratis Gratis
RCS-sleutelwoord Ja, maar niet aanbevolen via gebundelde plug-in
Ondiepe checkout / kloon Ja Bugzilla-extensie
Bestand / dir naam volgen Hernoem detectie Naam van tracking wijzigen
Subdirectory checkout / kloon Nee Nee
Repository model Gedistribueerd Gedistribueerd
Toestemming houden Alleen uitvoeringbit Alleen uitvoeringbit
Netwerkprotocollen aangepast, aangepast via ssh, rsync, HTTP, e-mailbundels HTTP, aangepast over SSH, e-mailbundels (met standaard plug-in)
Ontwikkeld door Junio ​​Hamano, Linus Torvalds Matt Mackall
Onderhouden door Junio ​​Hamano Matt Mackall
Geschreven in C, Bourne Shell, Perl Python en C
Voeg tracking samen Ja Ja
Bug Tracker-integratie Nee Trac (via plugin)
Licentie GPL v2 GPL v2
Website git-scm.com www.selenic.com/mercurial
OS POSIX, erger Windows-ondersteuning Unix-achtig, Windows, Mac OS X
Introductie (van Wikipedia) Git is een gratis gedistribueerd revisiebeheer of softwarebroncodebeheerproject met de nadruk op snel zijn. Git is oorspronkelijk gemaakt door Linus Torvalds voor de ontwikkeling van Linux-kernel. Mercurial is een platformonafhankelijk, gedistribueerd revisiebeheerprogramma voor softwareontwikkelaars. Het wordt voornamelijk geïmplementeerd met behulp van de programmeertaal Python, maar bevat een binaire diff-implementatie geschreven in C.
Type Revisie controle Revisie controle

Inhoud: Mercurial vs Git

  • 1 Ontwerpdoelen
  • 2 Projecten met Git vs Projecten met Mercurial
  • 3 Git vs Mercurial draagbaarheid
  • 4 Gebruikersinterface voor Git vs Mercurial
  • 5 Gerelateerde video's
  • 6 Referenties

Ontwerpdoelen

De belangrijkste ontwerpdoelen van Mercurial omvatten hoge prestaties, schaalbaarheid, een serverloze, volledig gedistribueerde samenwerking, robuuste verwerking van zowel platte tekst als binaire bestanden en geavanceerde vertakkings- en samenvoegmogelijkheden, terwijl ze conceptueel eenvoudig blijven. Het bevat een geïntegreerde webinterface.

Een van Linus Torvalds 'belangrijkste ontwerpdoelen voor Git was snelheid en efficiëntie van operaties. Andere ontwerpcriteria omvatten krachtige beveiligingen tegen corruptie, hetzij per ongeluk of kwaadwillig.

Projecten met Git vs Projecten met Mercurial

Verschillende spraakmakende softwareprojecten gebruiken Git nu voor revisiebeheer, met name de Linux-kernel, Perl, Samba, X.org Server, Qt (toolkit), One Laptop per kind (OLPC) kernontwikkeling, Ruby on Rails web framework, VLC , YUI, Merb, Wine, SWI Prolog, GNOME, GStreamer, DragonFly BSD en het Android mobiele platform.

Projecten die Mercurial gebruiken zijn Adblock Plus, Aldrin, Audacious, Dovecot IMAP-server, GNU Octave, NxOS, Nuxeo, Growl, MoinMoin wiki-software, Mozilla, Mutt (e-mailclient), Netbeans (IDE), OpenJDK, Python, SAGE, OpenSolaris van Sun Microsystem en Oracle's Opensource Software zoals Btrfs.

Git versus Mercurial draagbaarheid

Mercurial is oorspronkelijk geschreven om op Linux te worden uitgevoerd. Het is geporteerd naar Windows, Mac OS X en de meeste andere Unix-achtige systemen. Mercurial is voornamelijk een opdrachtregelprogramma.

Git is voornamelijk ontwikkeld op Linux, maar kan ook worden gebruikt op andere Unix-achtige besturingssystemen, waaronder BSD en Solaris.

Git werkt ook op Windows. Er zijn twee varianten:

  • Een native Microsoft Windows-poort, msysgit genaamd, nadert zijn voltooiing. Vanaf februari 2009 zijn er downloadbare installatieprogramma's klaar om te testen Sommige opdrachten zijn nog niet beschikbaar in de GUI's en moeten worden opgeroepen vanaf de opdrachtregel.
  • Git werkt ook bovenop Cygwin (een POSIX-emulatielaag), hoewel het merkbaar langzamer is, vooral voor opdrachten die zijn geschreven als shellscripts.

Gebruikersinterface voor Git vs Mercurial

Alle bewerkingen van Mercurial worden aangeroepen als trefwoordopties voor het stuurprogramma-programma hg, een verwijzing naar het chemische symbool van het element kwik. GUI-interfaces voor Mercurial omvatten Hgk (Tcl / Tk). Dit is geïmplementeerd als een Mercurial-extensie en maakt deel uit van de officiële versie. Deze kijker geeft de gerichte acyclische grafiek van de changesets van een Mercurial-repository weer. Deze kijker kan worden opgeroepen via de opdracht 'hg view', als de extensie is ingeschakeld. hgk was oorspronkelijk gebaseerd op een soortgelijke tool voor git, genaamd gitk. Er is hgk vervanging genaamd hgview dat is geschreven in pure python en biedt zowel gtk- als qt-interfaces.

Gerelateerde Mercurial-gereedschappen omvatten:

  • Verwante hulpmiddelen voor samenvoeging omvatten (h) gct (Qt) en Meld.
  • De convert-extensie maakt importeren vanuit CVS-, Darcs-, git-, GNU Arch-, Monotone- en Subversion-opslagplaatsen mogelijk.
  • Netbeans IDE ondersteunt Mercurial vanaf versie 6.
  • Tortoise Hg biedt een Windows-gebruikersvriendelijke, rechtsklik-menu-interface.
  • VisualHG is een Mercurial-broncontroleprovider-plug-in voor MS Visual Studio 2008.
  • Mercurial Eclipse is een plug-in voor Eclipse-teamproviders voor Eclipse 3.3 en nieuwer.

Alternatieven voor het uitvoeren van Git met behulp van een GUI zijn onder andere:

  • git-cvsserver (die een CVS-server emuleert, waardoor Windows CVS-clients kunnen worden gebruikt)
  • Eclipse IDE-gebaseerde Git-client, gebaseerd op een pure Java-implementatie van Git's internals: egit
  • NetBeans IDE-ondersteuning voor Git is in ontwikkeling.
  • Een Windows Explorer-extensie (een TortoiseCVS / TortoiseSVN-lookalike) is gestart op TortoiseGit en Git Extensions, wat een explorer-extensie is, evenals een zelfstandige GUI en een Visual Studio 2008 Plug-in

Gerelateerde video's

Referenties

  • wikipedia: Git_ (software)
  • wikipedia: Mercurial_ (software)
  • Mercurial-ontwikkelaar Martin Geisler vergelijkt uitgebreid de eigenschappen van Git en Mercural