Mercurial vs. Git

git și ager sunt instrumente de software gratuite pentru controlul reviziilor distribuite și managementul codului sursă software.

Atât Git cât și Mercurial au fost inițiate aproximativ în același timp cu scopuri similare. Stimularea imediată a fost anunțul din aprilie 2005 de către Bitmover că au retras versiunea gratuită BitKeeper, care a fost folosită pentru cerințele de control al versiunii proiectului kernel Linux. Creatorul Mercurial, Matt Mackall, a decis să scrie un sistem distribuit de control al versiunii ca înlocuitor pentru utilizarea cu kernel-ul Linux. Mackall a anunțat pentru prima dată Mercurial pe 19 aprilie 2005.

Git a fost creat de Linus Torvalds pentru dezvoltarea kernel-ului Linux, cu accent pe a fi rapid. Dezvoltarea Git a început la 3 aprilie 2005. Proiectul a fost anunțat pe 6 aprilie și a devenit auto-gazdă la data de 7 aprilie. Prima fuziune a mai multor sucursale a fost făcută pe 18 aprilie.

Proiectul kernel-ului Linux a decis să utilizeze Git mai degrabă decât Mercurial, dar Mercurial este acum utilizat de multe alte proiecte.

Diagramă de comparație

Git comparativ cu graficul Mercurial
gitager
Server web încorporat Nu da
Cârlige pre / post-eveniment da da
Finalizarea conversiilor de linie da da
Etichete da da
Suport internațional Parțial da
Fișierul redenumeste Da (implicit) da
Îmbinați fișierul redenumiți da da
Link-uri simbolice da da
Sursa deschisa da da
Revizuirile semnate da da
ID-uri de revizie SHA-1 hashes Numere, SHA-1 hashes
Atomic comite da da
Model de istorie Instantaneu changeset
Dimensiunea depozitului O (patch-uri) (Notă mare O) O (patch-uri) (Notă mare O)
Modelul de concurs contopi contopi
Sisteme de operare Unix-like, Windows, Mac OS X Unix-like, Windows, Mac OS X
Zona de aterizare da Nu
Externe ramură da Nu
Cost Liber Liber
Cuvânt cheie RCS Da, dar nu este recomandat prin plugin-ul inclus
Plătește / clone de plată da Extensia Bugzilla
Urmărire nume fișier / dir Redenumiți detectarea Redenumiți urmărirea
Subdirectorul de control / clona Nu Nu
Modelul depozitului distribuit distribuit
Permiterea păstrării Numai execuție bit Numai execuție bit
Protocoale de rețea personalizat, personalizat peste ssh, rsync, HTTP, pachete de e-mail HTTP, personalizat peste ssh, pachete de e-mail (cu plugin standard)
Dezvoltat de Junio ​​Hamano, Linus Torvalds Matt Mackall
Întreținută de Junio ​​Hamano Matt Mackall
Scris in C, Bourne Shell, Perl Python și C
Merge tracking da da
Integrare cu Bug Tracker Nu Trac (prin plugin)
Licență GPL v2 GPL v2
website git-scm.com www.selenic.com/mercurial
OS POSIX, suport Windows mai rău Unix-like, Windows, Mac OS X
Introducere (de la Wikipedia) Git este un control de revizie distribuit gratuit sau un proiect de management al codului sursă al software-ului, cu accent pe a fi rapid. Git a fost inițial creat de Linus Torvalds pentru dezvoltarea kernel-ului Linux. Mercurial este un instrument de control revizuit distribuit pentru dezvoltatori de software. Acesta este în principal implementat folosind limbajul de programare Python, dar include o implementare binară diff scrisă în C.
Tip Controlul reviziei Controlul reviziei

Cuprins: Mercurial vs Git

  • 1 Obiective de proiectare
  • 2 Proiecte folosind Git vs Proiecte folosind Mercurial
  • 3 Git vs Portabilitatea Mercurială
  • 4 interfață utilizator pentru Git vs Mercurial
  • 5 videoclipuri similare
  • 6 Referințe

Scopuri de proiectare

Obiectivele majore de design ale companiei Mercurial includ performanțe ridicate, scalabilitate, dezvoltare fără colaborare fără server, distribuție completă, manipulare robustă a fișierelor text și binare și capabilități avansate de ramificare și fuziune, rămânând în același timp simple. Acesta include o interfață web integrată.

Unul dintre obiectivele strategice ale lui Linus Torvalds pentru Git a fost viteza și eficiența operațiunilor. Alte criterii de proiectare au inclus garanții puternice împotriva corupției, fie accidentale, fie rău intenționate.

Proiecte folosind Git vs Proiecte folosind Mercurial

Câteva proiecte software de înaltă calitate utilizează acum Git pentru controlul reviziilor, în special kernel-ul Linux, Perl, Samba, X.org Server, Qt (toolkit), Dezvoltare de bază pentru un laptop pe copil (OLPC) , YUI, Merb, Wine, SWI Prolog, GNOME, GStreamer, DragonFly BSD și platforma mobilă Android.

Proiectele care folosesc Mercurial includ Adblock Plus, Aldrin, Audace, Dovecot IMAP server, GNU Octave, NxOS, Nuxeo, Growl, MoinMoin wiki, Mozilla, Mutt, Netbeans, OpenJDK, și Oracle's Opensource Software ca Btrfs.

Git vs. Portabilitatea Mercurială

Mercurial a fost inițial scris pentru a rula pe Linux. Acesta a fost portat la Windows, Mac OS X și la majoritatea sistemelor de tip Unix. Mercurial este în primul rând un program de linie de comandă.

Git este dezvoltat în principal pe Linux, dar poate fi folosit și pe alte sisteme de operare asemănătoare Unixului, inclusiv BSD și Solaris.

Git rulează și pe Windows. Există două variante:

  • Un port Microsoft nativ, denumit msysgit, se apropie de finalizare. Începând cu februarie 2009, instalatorii care se pot descărca sunt pregătiți pentru testare Unele comenzi nu sunt încă disponibile din GUI și trebuie invocate din linia de comandă.
  • Git rulează, de asemenea, pe Cygwin (un strat de emulare POSIX), deși este considerabil mai lent, mai ales pentru comenzile scrise ca script-uri de shell.

Interfața utilizatorului pentru Git vs Mercurial

Toate operațiunile Mercurial sunt invocate ca opțiuni de cuvinte cheie pentru programul său de conducere hg, o referință la simbolul chimic al elementului mercur. Interfețele GUI pentru Mercurial includ Hgk (Tcl / Tk). Aceasta este implementată ca extensie Mercurial și face parte din versiunea oficială. Acest vizualizator afișează graficul aciclic direcționat al seturilor de modificări ale unui depozit Mercurial. Acest vizualizator poate fi invocat prin intermediul comenzii "hg view", dacă extensia este activată. hgk a fost inițial bazat pe un instrument similar pentru git numit gitk. Există o înlocuire hgk numită hgview care este scrisă în Python pur și oferă atât interfețe gtk cât și qt.

Instrumentele legate de Mercurial includ:

  • Instrumentele asociate pentru fuziune includ (h) gct (Qt) și Meld.
  • Extensia de conversie permite importul din arhivele CVS, Darcs, git, GNU Arch, Monotone și Subversion.
  • Netbeans IDE suportă Mercurial din Versiunea 6.
  • Tortoise Hg oferă o interfață de meniu ușor accesibilă utilizatorilor Windows.
  • VisualHG este un plugin pentru controlul surselor Mercurial pentru MS Visual Studio 2008.
  • Mercurial Eclipse este un plugin de furnizor de echipă Eclipse pentru Eclipse 3.3 și mai nou.

Alternativele pentru rularea Git folosind un GUI includ:

  • git-cvsserver (care emulează un server CVS, care permite utilizarea de clienți CVS Windows)
  • Eclipse IDE bazat pe client Git, bazat pe o implementare Java pură a internelor Git: egit
  • Suportul NetBeans IDE pentru Git este în curs de dezvoltare.
  • A fost lansată o extensie Windows Explorer (TortoiseCVS / TortoiseSVN-lookalike) la TortoiseGit și Git Extensions, care este o extensie explorer, precum și un GUI autonom și un plug-in Visual Studio 2008

Videoclipuri similare

Referințe

  • wikipedia: Git_ (software)
  • wikipedia: Mercurial_ (software)
  • Dezvoltatorul Mercurial, Martin Geisler, compară caracteristicile din Git și Mercural în profunzime