Mercurial vs. Git

Idiota e mutevole sono entrambi strumenti software gratuiti per il controllo di revisione distribuito e la gestione del codice sorgente software.

Sia Git che Mercurial sono stati avviati all'incirca nello stesso periodo con obiettivi simili. Lo stimolo immediato è stato l'annuncio nell'aprile 2005 da parte di Bitmover che stavano ritirando la versione gratuita di BitKeeper, che era stata utilizzata per i requisiti di controllo della versione del progetto del kernel di Linux. Il creatore di Mercurial Matt Mackall ha deciso di scrivere un sistema di controllo delle versioni distribuito in sostituzione del kernel Linux. Mackall ha annunciato Mercurial per la prima volta il 19 aprile 2005.

Git è stato creato da Linus Torvalds per lo sviluppo del kernel Linux, con un'enfasi sull'essere veloce. Lo sviluppo di Git è iniziato il 3 aprile 2005. Il progetto è stato annunciato il 6 aprile ed è diventato self-hosting dal 7 aprile. La prima fusione di più filiali è stata effettuata il 18 aprile..

Il progetto del kernel Linux ha deciso di utilizzare Git piuttosto che Mercurial, ma Mercurial è ora utilizzato da molti altri progetti.

Grafico comparativo

Diagramma di confronto Git contro Mercurial
Idiotamutevole
Web server integrato No
Ganci pre / post evento
Conversioni di fine linea
tag
Supporto internazionale Parziale
Rinominare i file Sì (implicito)
Unisci i nomi dei file
Collegamenti simbolici
Open source
Revisioni firmate
ID di revisione SHA-1 hash Numeri, hash SHA-1
Atomic commette
Modello di storia istantanea changeset
Dimensione del repository O (patch) (notazione O grande) O (patch) (notazione O grande)
Modello di concorrenza fondersi fondersi
Sistemi operativi Simile a Unix, Windows, Mac OS X Simile a Unix, Windows, Mac OS X
Area di sosta No
Filiale esterna No
Costo Gratuito Gratuito
Parola chiave RCS Sì, ma non raccomandato tramite un plugin in bundle
Cassa bassa / clone Estensione Bugzilla
Monitoraggio del nome file / dir Rinomina il rilevamento Rinomina il monitoraggio
Sottodirectory checkout / clone No No
Modello di deposito distribuito distribuito
Mantenimento delle autorizzazioni Solo bit di esecuzione Solo bit di esecuzione
Protocolli di rete personalizzato, personalizzato su ssh, rsync, HTTP, bundle di posta elettronica Pacchetti HTTP, personalizzati su ssh, e-mail (con plug-in standard)
Sviluppato da Junio ​​Hamano, Linus Torvalds Matt Mackall
Mantenuto da Junio ​​Hamano Matt Mackall
Scritto in C, Bourne Shell, Perl Python e C
Unisci tracciamento
Integrazione di Bug Tracker No Trac (tramite plugin)
Licenza GPL v2 GPL v2
Sito web git-scm.com www.selenic.com/mercurial
OS POSIX, supporto peggio di Windows Simile a Unix, Windows, Mac OS X
Introduzione (da Wikipedia) Git è un controllo di revisione distribuito gratuito o un progetto di gestione del codice sorgente software con enfasi sulla velocità. Git è stato inizialmente creato da Linus Torvalds per lo sviluppo del kernel Linux. Mercurial è uno strumento di controllo di revisione distribuito multipiattaforma per gli sviluppatori di software. Viene principalmente implementato utilizzando il linguaggio di programmazione Python, ma include un'implementazione di una binario scritta in C.
genere Controllo di revisione Controllo di revisione

Contenuto: Mercurial vs Git

  • 1 obiettivi di progettazione
  • 2 Progetti che usano Git vs Projects usando Mercurial
  • 3 Git vs Mercurial Portability
  • 4 Interfaccia utente per Git vs Mercurial
  • 5 video correlati
  • 6 riferimenti

Obiettivi di progettazione

I principali obiettivi di progettazione di Mercurial includono alte prestazioni, scalabilità, uno sviluppo collaborativo completamente distribuito senza server, una gestione affidabile di file in formato testo e binario e funzionalità avanzate di ramificazione e fusione, pur rimanendo concettualmente semplici. Include un'interfaccia web integrata.

Uno degli obiettivi chiave di design di Linus Torvalds per Git era la velocità e l'efficienza delle operazioni. Altri criteri di progettazione includevano forti salvaguardie contro la corruzione, accidentali o dannose.

Progetti che usano Git vs Projects usando Mercurial

Diversi progetti software di alto profilo ora utilizzano Git per il controllo di revisione, in particolare il kernel Linux, Perl, Samba, X.org Server, Qt (toolkit), sviluppo del core One Laptop per Child (OLPC), framework web Ruby on Rails, VLC , YUI, Merb, Wine, SWI Prolog, GNOME, GStreamer, DragonFly BSD e la piattaforma mobile Android.

I progetti che utilizzano Mercurial includono: Adblock Plus, Aldrin, Audacious, server IMAP di Dovecot, GNU Octave, NxOS, Nuxeo, Growl, software wiki MoinMoin, Mozilla, Mutt (client di posta elettronica), Netbeans (IDE), OpenJDK, Python, SAGE, Sun Microsystem's OpenSolaris e il software Opensource di Oracle come Btrfs.

Git vs Mercurial Portability

Mercurial è stato inizialmente scritto per funzionare su Linux. È stato portato su Windows, Mac OS X e molti altri sistemi simili a Unix. Mercurial è principalmente un programma a riga di comando.

Git è sviluppato principalmente su Linux, ma può essere utilizzato su altri sistemi operativi di tipo Unix tra cui BSD e Solaris.

Git funziona anche su Windows. Ci sono due varianti:

  • Una porta nativa di Microsoft Windows, chiamata msysgit, si sta avvicinando al completamento. A partire da febbraio 2009, sono disponibili per il test installatori scaricabili Alcuni comandi non sono ancora disponibili dalle GUI e devono essere richiamati dalla riga di comando.
  • Git funziona anche su Cygwin (un livello di emulazione POSIX), sebbene sia notevolmente più lento, specialmente per i comandi scritti come script di shell.

Interfaccia utente per Git vs Mercurial

Tutte le operazioni di Mercurial sono invocate come opzioni di parole chiave al suo programma di driver hg, un riferimento al simbolo chimico dell'elemento mercurio. Le interfacce GUI per Mercurial includono Hgk (Tcl / Tk). Questo è implementato come estensione Mercurial e fa parte della versione ufficiale. Questo visualizzatore mostra il grafico aciclico diretto dei changeset di un repository Mercurial. Questo visualizzatore può essere richiamato tramite il comando 'hg view', se l'estensione è abilitata. hgk era originariamente basato su uno strumento simile per git chiamato gitk. C'è hgk replacement chiamato hgview che è scritto in python puro e fornisce entrambe le interfacce gtk e qt.

Gli strumenti Mercurial correlati includono:

  • Strumenti correlati per la fusione includono (h) gct (Qt) e Meld.
  • L'estensione convert consente l'importazione da repository CVS, Darcs, git, GNU Arch, Monotone e Subversion.
  • Netbeans IDE supporta Mercurial dalla versione 6.
  • Tortoise Hg fornisce un'interfaccia del menu di scelta rapida, facile da usare di Windows.
  • VisualHG è un plug-in di provider di controllo del codice sorgente Mercurial per MS Visual Studio 2008.
  • Mercurial Eclipse è un plug-in del provider di team Eclipse per Eclipse 3.3 e successivi.

Le alternative per l'esecuzione di Git utilizzando una GUI includono:

  • git-cvsserver (che emula un server CVS, che consente l'uso di client Windows CVS)
  • Client Git basato su IDE Eclipse, basato su un'implementazione pura di Git internals: egit
  • Il supporto IDE NetBeans per Git è in fase di sviluppo.
  • Un'estensione di Windows Explorer (una TortoiseCVS / TortoiseSVN-lookalike) è stata avviata in TortoiseGit e Git Extensions che è un'estensione per l'esploratore, oltre a una GUI indipendente e un plug-in di Visual Studio 2008

Video collegati

Riferimenti

  • wikipedia: Git_ (software)
  • wikipedia: Mercurial_ (software)
  • Lo sviluppatore mercuriale Martin Geisler ha confrontato le caratteristiche di Git e Mercural in profondità