Git et Mercuriel sont à la fois des outils logiciels gratuits pour le contrôle de révision distribué et la gestion de code source de logiciel.
Git et Mercurial ont été lancés à peu près au même moment avec des objectifs similaires. Le stimulus immédiat a été l'annonce faite par Bitmover en avril 2005 du retrait de la version gratuite de BitKeeper, qui avait été utilisée pour les exigences de contrôle de version du projet de noyau Linux. Le créateur de Mercurial, Matt Mackall, a décidé d’écrire un système de contrôle de version distribué pour remplacer le noyau Linux. Mackall a annoncé Mercurial pour la première fois le 19 avril 2005.
Git a été créé par Linus Torvalds pour le développement du noyau Linux, en mettant l’accent sur la rapidité. Le développement de Git a débuté le 3 avril 2005. Le projet a été annoncé le 6 avril et est devenu autonome à partir du 7 avril. La première fusion de plusieurs succursales a eu lieu le 18 avril..
Le projet de noyau Linux a décidé d'utiliser Git plutôt que Mercurial, mais Mercurial est maintenant utilisé par de nombreux autres projets..
Git | Mercuriel | |
---|---|---|
Serveur Web intégré | Non | Oui |
Crochets pré / post-événement | Oui | Oui |
Conversions de fin de ligne | Oui | Oui |
Mots clés | Oui | Oui |
Soutien international | Partiel | Oui |
Fichier renommé | Oui (implicite) | Oui |
Fusionner le fichier renommé | Oui | Oui |
Liens symboliques | Oui | Oui |
Open source | Oui | Oui |
Révisions signées | Oui | Oui |
ID de révision | SHA-1 hashes | Chiffres, hachages SHA-1 |
Atomic commet | Oui | Oui |
Modèle d'histoire | Instantané | Changeset |
Taille du dépôt | O (patch) (notation Big O) | O (patch) (notation Big O) |
Modèle de concurrence | Fusionner | Fusionner |
Systèmes d'exploitation | Unix-like, Windows, Mac OS X | Unix-like, Windows, Mac OS X |
Zone de transit | Oui | Non |
Branche externe | Oui | Non |
Coût | Libre | Libre |
Mot clé RCS | Oui, mais pas recommandé | via le plugin fourni |
Achat superficiel / clone | Oui | Extension Bugzilla |
Suivi de nom de fichier / répertoire | Renommer la détection | Renommer le suivi |
Sous-répertoire checkout / clone | Non | Non |
Modèle de référentiel | Distribué | Distribué |
Maintien de l'autorisation | Bit d'exécution seulement | Bit d'exécution seulement |
Protocoles de réseau | personnalisé, personnalisé sur ssh, rsync, HTTP, lots de messagerie | HTTP, custom over ssh, bundles d'email (avec plugin standard) |
Développé par | Junio Hamano, Linus Torvalds | Matt Mackall |
Entretenu par | Junio Hamano | Matt Mackall |
Écrit en | C, Bourne Shell, Perl | Python et C |
Fusionner le suivi | Oui | Oui |
Intégration de Bug Tracker | Non | Trac (via plugin) |
Licence | GPL v2 | GPL v2 |
Site Internet | git-scm.com | www.selenic.com/mercurial |
OS | POSIX, pire support Windows | Unix-like, Windows, Mac OS X |
Introduction (de Wikipedia) | Git est un projet de contrôle de révision distribué ou gratuit, ou de gestion de code source d'un logiciel, qui met l'accent sur la rapidité. Git a été initialement créé par Linus Torvalds pour le développement du noyau Linux. | Mercurial est un outil de contrôle de révision distribué et multiplate-forme destiné aux développeurs de logiciels. Il est principalement implémenté en utilisant le langage de programmation Python, mais inclut une implémentation binaire diff écrite en C. |
Type | Contrôle de révision | Contrôle de révision |
Les principaux objectifs de conception de Mercurial sont notamment les suivants: hautes performances, évolutivité, développement collaboratif distribué sans serveur et entièrement distribué, gestion robuste des fichiers texte et binaires, ainsi que des fonctionnalités avancées de création de branches et de fusion, tout en conservant une simplicité conceptuelle. Il comprend une interface Web intégrée.
L'un des objectifs clés de la conception de Linus Torvalds pour Git était la rapidité et l'efficacité des opérations. Parmi les autres critères de conception figuraient de solides garanties contre la corruption, qu'elle soit accidentelle ou malveillante..
Plusieurs projets logiciels de haut niveau utilisent maintenant Git pour le contrôle des versions, notamment le noyau Linux, Perl, Samba, le serveur X.org, Qt (boîte à outils), le développement de base Un ordinateur portable par enfant (OLPC), l'infrastructure Web Ruby on Rails, VLC. , YUI, Merb, Wine, SWI Prolog, GNOME, GStreamer, DragonFly BSD et la plate-forme mobile Android.
Les projets utilisant Mercurial comprennent Adblock Plus, Aldrin, Audacious, le serveur IMAP Dovecot, GNU Octave, NxOS, Nuxeo, Growl, le logiciel wiki MoinMoin, Mozilla, Mutt (client de messagerie), Netbeans (IDE), OpenJDK, Python, SAGE, OpenSolaris et le logiciel Opensource d’Oracle comme Btrfs.
Mercurial a été initialement conçu pour fonctionner sous Linux. Il a été porté sur Windows, Mac OS X et la plupart des autres systèmes de type Unix. Mercurial est avant tout un programme en ligne de commande.
Git est principalement développé sous Linux, mais peut être utilisé sur d'autres systèmes d'exploitation de type Unix, notamment BSD et Solaris..
Git fonctionne aussi sous Windows. Il y a deux variantes:
Toutes les opérations de Mercurial sont appelées comme options de mot-clé dans son programme pilote hg, une référence au symbole chimique de l'élément mercury. Les interfaces graphiques pour Mercurial incluent Hgk (Tcl / Tk). Ceci est implémenté en tant qu'extension Mercurial et fait partie de la version officielle. Ce visualiseur affiche le graphe acyclique dirigé des changesets d’un référentiel Mercurial. Ce visualiseur peut être appelé via la commande 'hg view', si l'extension est activée. hgk était à l'origine basé sur un outil similaire pour git appelé gitk. Il y a remplacement de hgk nommé hgview qui est écrit en python pur et fournit les interfaces gtk et qt.
Les outils Mercurial associés incluent:
Les alternatives pour exécuter Git en utilisant une interface graphique incluent: