Mercurial vs Git

Git och Mercurial är båda gratis programvaruverktyg för distribuerad revisionskontroll och programkodkodshantering.

Både Git och Mercurial startades ungefär samtidigt med liknande mål. Den omedelbara stimulansen var tillkännagivandet i april 2005 av Bitmover att de tog ut den fria versionen av BitKeeper, som hade använts för Linux-kärnprojektets versionsstyrningskrav. Mercurial skaparen Matt Mackall bestämde sig för att skriva ett distribuerat versionsstyrningssystem som ersättare för användning med Linux-kärnan. Mackall annonserade först Mercurial den 19 april 2005.

Git skapades av Linus Torvalds för Linux-kärnutveckling, med betoning på att vara snabb. Utvecklingen av Git började den 3 april 2005. Projektet meddelades den 6 april och blev självhäftande från och med den 7 april. Den första sammanslagningen av flera grenar gjordes den 18 april.

Linux-kärnprojektet bestämde sig för att använda Git snarare än Mercurial, men Mercurial används nu av många andra projekt.

Jämförelsediagram

Git versus Mercurial jämförelse diagram
GitMercurial
Inbyggd webbserver Nej Ja
Före / efter-händelse krokar Ja Ja
Slut på radkonverteringar Ja Ja
Tags Ja Ja
Internationellt stöd Partiell Ja
Filnamn Ja (implicit) Ja
Sammanfoga filnamn Ja Ja
Symboliska länkar Ja Ja
Öppen källa Ja Ja
Undertecknade revideringar Ja Ja
Revisions-ID SHA-1 hashes Numbers, SHA-1 hashes
Atomen förbinder sig Ja Ja
Historiemodell Snapshot ändringsset
Förvaringsstorlek O (patch) (Big O notation) O (patch) (Big O notation)
Likviditetsmodell Sammanfoga Sammanfoga
Operativsystem Unix-liknande, Windows, Mac OS X Unix-liknande, Windows, Mac OS X
Staging område Ja Nej
Externals filial Ja Nej
Kosta Fri Fri
RCS-nyckelord Ja, men rekommenderas inte via buntad plugin
Kort utcheckning / klon Ja Bugzilla förlängning
Fil / dir namn spårning Byt namn på detektering Byt namn på spårning
Underkatalogskontroll / klon Nej Nej
Repository modell Distribuerad Distribuerad
Beviljande av tillstånd Endast exekveringsbit Endast exekveringsbit
Nätverksprotokoll anpassad, anpassad över ssh, rsync, HTTP, e-buntbuntar HTTP, anpassad över ssh, e-buntar (med standard plugin)
Utvecklad av Junio ​​Hamano, Linus Torvalds Matt Mackall
Underhållen av Junio ​​Hamano Matt Mackall
Skrivet i C, Bourne Shell, Perl Python och C.
Sammanfoga spårning Ja Ja
Bug Tracker integration Nej Trac (via plugin)
Licens GPL v2 GPL v2
Hemsida git-scm.com www.selenic.com/mercurial
OS POSIX, sämre Windows-support Unix-liknande, Windows, Mac OS X
Introduktion (från Wikipedia) Git är en fritt distribuerad revisionskontroll eller ett program för källkoden för programkod med betoning på att vara snabb. Git skapades ursprungligen av Linus Torvalds för Linux-kärnutveckling. Mercurial är ett plattformsplattform, distribuerat revisionsverktyg för programutvecklare. Det implementeras huvudsakligen med Python programmeringsspråk, men innehåller en binär diff-implementering som skrivs i C.
Typ Revisionskontroll Revisionskontroll

Innehåll: Mercurial vs Git

  • 1 Design mål
  • 2 Projekt som använder Git vs Projects using Mercurial
  • 3 Git vs Mercurial Portability
  • 4 användargränssnitt för Git vs Mercurial
  • 5 relaterade videor
  • 6 referenser

Design mål

Mercurials stora designmål inkluderar högpresterande, skalbarhet, serverlösa, helt distribuerad samarbetsutveckling, robust hantering av både ren text och binära filer och avancerade förgrenings- och sammanslagningsegenskaper, medan de återstår konceptuellt enkla. Den innehåller ett integrerat webbgränssnitt.

Ett av Linus Torvalds 'nyckeldesignsmål för Git var snabbhet och effektivitet i verksamheten. Andra designkriterier inkluderade starka skydd mot korruption, oavsiktligt eller skadligt.

Projekt som använder Git vs Projects using Mercurial

Flera högprofilerade mjukvaruprojekt använder nu Git för revisionskontroll, i synnerhet Linux-kärnan, Perl, Samba, X.org Server, Qt (verktygsverktyg), En bärbar dator per barns (OLPC) kärnutveckling, Ruby on Rails Web Framework, VLC , YUI, Merb, Vin, SWI Prolog, GNOME, GStreamer, DragonFly BSD och Android-mobilplattformen.

Projekt som använder Mercurial inkluderar Adblock Plus, Aldrin, Audacious, Dovecot IMAP-server, GNU Octave, NxOS, Nuxeo, Growl, MoinMoin wiki-programvara, Mozilla, Mutt (e-postklient), Netbeans (IDE), OpenJDK, Python, SAGE, Sun Microsystems OpenSolaris och Oracle's Opensource Software som Btrfs.

Git vs Mercurial Portability

Mercurial var ursprungligen skrivet för att köras på Linux. Det har blivit portat till Windows, Mac OS X och de flesta andra Unix-liknande system. Mercurial är främst ett kommandoradsprogram.

Git utvecklas huvudsakligen på Linux, men kan användas på andra Unix-liknande operativsystem inklusive BSD och Solaris.

Git körs också på Windows. Det finns två varianter:

  • En inbyggd Microsoft Windows-port, kallad msysgit, närmar sig slutförandet. Från och med februari 2009 finns nedladdningsbara installatörer redo för testning. Vissa kommandon är ännu inte tillgängliga från GUI: erna och måste påkallas från kommandoraden.
  • Git går också på toppen av Cygwin (ett POSIX-emuleringslager), även om det är märkbart långsammare, speciellt för kommandon som skrivs som skalskript.

Användargränssnitt för Git vs Mercurial

Alla Mercurials operationer åberopas som nyckelord alternativ till dess drivrutinsprogram hg, en hänvisning till kemikalie symbolen för elementet kvicksilver. GUI-gränssnitt för Mercurial inkluderar Hgk (Tcl / Tk). Detta implementeras som en Mercurial förlängning, och ingår i den officiella versionen. Denna tittare visar den riktade acykliska grafen för förändringsuppsättningarna i ett Mercurial-arkiv. Den här tittaren kan åberopas via kommandot "hg view", om förlängningen är aktiverad. hgk var ursprungligen baserat på ett liknande verktyg för git kallad gitk. Det finns hgk ersättare heter hgview som är skrivet i ren python och ger både gtk och qt gränssnitt.

Relaterade Mercurial-verktyg inkluderar:

  • Liknande verktyg för sammanslagning inkluderar (h) gct (Qt) och Meld.
  • Den konvertera förlängningen tillåter import från CVS, Darcs, git, GNU Arch, Monotone och Subversion repositories.
  • Netbeans IDE stöder Mercurial från Version 6.
  • Sköldpadda Hg ger ett Windows användarvänligt högerklick-menygränssnitt.
  • VisualHG är en plugin för Mercurial Source Control Provider för MS Visual Studio 2008.
  • Mercurial Eclipse är ett Eclipse Team Provider plugin för Eclipse 3.3 och senare.

Alternativ för att köra Git med hjälp av en GUI inkluderar:

  • git-cvsserver (som emulerar en CVS-server, vilket möjliggör användning av Windows CVS-klienter)
  • Eclipse IDE-baserad Git-klient, baserad på en ren Java-implementering av Git's internals: egit
  • NetBeans IDE stöd för Git är under utveckling.
  • En Windows Explorer-förlängning (en TortoiseCVS / TortoiseSVN-lookalike) startades vid TortoiseGit och Git Extensions som är en explorer-förlängning samt en fristående GUI och en Visual Studio 2008 Plug-in

Relaterade videoklipp

referenser

  • wikipedia: Git_ (mjukvara)
  • wikipedia: Mercurial_ (mjukvara)
  • Mercurial utvecklare Martin Geisler jämför egenskaper Git och Mercural i djupet