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.
Idiota | mutevole | |
---|---|---|
Web server integrato | No | sì |
Ganci pre / post evento | sì | sì |
Conversioni di fine linea | sì | sì |
tag | sì | sì |
Supporto internazionale | Parziale | sì |
Rinominare i file | Sì (implicito) | sì |
Unisci i nomi dei file | sì | sì |
Collegamenti simbolici | sì | sì |
Open source | sì | sì |
Revisioni firmate | sì | sì |
ID di revisione | SHA-1 hash | Numeri, hash SHA-1 |
Atomic commette | sì | sì |
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 | sì | No |
Filiale esterna | sì | No |
Costo | Gratuito | Gratuito |
Parola chiave RCS | Sì, ma non raccomandato | tramite un plugin in bundle |
Cassa bassa / clone | sì | 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 | sì | sì |
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 |
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.
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.
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:
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:
Le alternative per l'esecuzione di Git utilizzando una GUI includono: