Mercurial vs. Git
- 2683
- 774
- Sarah Poirier
Git et Mercuriel sont tous deux des outils logiciels gratuits pour le contrôle de révision distribué et la gestion des codes de source logicielle.
Git et Mercurial ont commencé à peu près au même moment avec des objectifs similaires. Le stimulus immédiat était l'annonce en avril 2005 par Bitmover qu'ils retiraient la version gratuite de Bitkeeper, qui avait été utilisée pour les exigences de contrôle de la version du projet de noyau Linux. Le créateur mercurial Matt Mackall a décidé d'écrire un système de contrôle de version distribué en remplacement pour une utilisation par le noyau Linux. Mackall a annoncé le 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 le fait d'être rapide. Le développement de Git a commencé le 3 avril 2005. Le projet a été annoncé le 6 avril et est devenu auto-hébergement au 7 avril. La première fusion de multiples succursales a été réalisée le 18 avril.
Le projet Linux Kernel a décidé d'utiliser Git plutôt que Mercurial, mais Mercurial est maintenant utilisé par de nombreux autres projets.
Tableau de comparaison
Différences - similitudes -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 |
Fixer les nommes de renom | Oui (implicite) | Oui |
Fusion des renommés de fichiers | Oui | Oui |
Liens symboliques | Oui | Oui |
Open source | Oui | Oui |
Révisions signées | Oui | Oui |
ID de révision | Hachages SHA-1 | Nombres, hachages SHA-1 |
Commits atomiques | Oui | Oui |
Modèle d'histoire | Instantané | Décor |
Taille du référentiel | O (patch) (Big O Notation) | O (patch) (Big O Notation) |
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 | Gratuit | Gratuit |
Mot-clé RCS | Oui, mais pas recommandé | via le plugin groupé |
Accarlage / clone peu profond | Oui | Extension Bugzilla |
Suivi du nom de fichier / dir | Renommée détection | Renommer le suivi |
Caisse / clone du sous-répertoire | Non | Non |
Modèle de référentiel | Distribué | Distribué |
Permission | Bit d'exécution uniquement | Bit d'exécution uniquement |
Protocoles de réseau | personnalisé, personnalisé sur SSH, RSYNC, HTTP, Bundles de messagerie | HTTP, Custom Over SSH, Bundles de courrier électronique (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 |
Fusion de suivi | Oui | Oui |
Intégration du tracker de bogues | Non | Trac (via le plugin) |
Licence | GPL V2 | GPL V2 |
Site Internet | git-scm.com | www.sélénique.com / mercuriel |
OS | POSIX, Pire Windows Support | Unix-like, Windows, Mac OS X |
Introduction (de Wikipedia) | Git est un contrôle de révision distribué gratuit ou un projet de gestion de code source de logiciel en mettant l'accent sur le fait d'être rapide. 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 réparti et réparti pour les développeurs de logiciels. Il est principalement implémenté à l'aide du langage de programmation Python, mais comprend une implémentation de diff binaire écrit en C. |
Taper | Contrôle de révision | Contrôle de révision |
Objectifs de conception
Les principaux objectifs de conception de Mercurial comprennent des performances élevées, une évolutivité, un développement collaboratif sans serveur et entièrement distribué, une gestion robuste des fichiers de texte brut et binaire, et des capacités avancées de branchement et de fusion, tout en restant conceptuellement simple. Il comprend une interface Web intégrée.
L'un des principaux objectifs de conception de Linus Torvalds pour Git a été la vitesse et l'efficacité des opérations. D'autres critères de conception comprenaient de fortes garanties contre la corruption, accidentelles ou malveillantes.
Projets utilisant des projets Git vs utilisant Mercurial
Plusieurs projets logiciels de haut niveau utilisent désormais Git pour le contrôle de la révision, notamment le noyau Linux, Perl, Samba, X.Org Server, Qt (Toolkit), un ordinateur portable par enfant (OLPC) Core Development, Ruby on Rails Web Framework, VLC, YUI, Merb, Wine, Swi Prolog, Gnome, Gtrestamer, Dragonfly BSD et la plate-forme mobile Android.
Les projets utilisant Mercurial incluent AdBlock Plus, Aldrin, Audacieuse, Dovecot IMAP Server, GNU Octave, NXOS, Nuxeo, Growl, MoinMoin Wiki Software, Mozilla, Mutt (Courriel Client), NetBeans (IDE), OpenJDK, Python, Sage, Sun Microsystem's OpenSorisoris Et le logiciel OpenSource d'Oracle comme BTRFS.
Git vs portabilité mercurielle
Mercurial a été initialement écrit pour fonctionner sur Linux. Il a été porté sur Windows, Mac OS X et la plupart des autres systèmes de type Unix. Mercurial est principalement un programme de ligne de commande.
Git est principalement développé sur Linux, mais peut être utilisé sur d'autres systèmes d'exploitation de type UNIX, y compris BSD et Solaris.
Git s'exécute également sur Windows. Il y a deux variantes:
- Un port de Microsoft Windows natif, appelé MSYSGIT, approche de l'achèvement. En février 2009, il existe des installateurs téléchargeables prêts à tester certaines commandes ne sont pas encore disponibles à partir des GUIS et doivent être invoquées à partir de la ligne de commande.
- Git s'exécute également sur le cygwin (une couche d'émulation POSIX), bien qu'elle soit sensiblement plus lente, en particulier pour les commandes écrites comme des scripts de coquille.
Interface utilisateur pour Git vs Mercurial
Toutes les opérations de Mercurial sont invoquées comme options de mots clés à son programme de conducteur HG, une référence au symbole chimique de l'élément Mercure. Les interfaces GUI pour le mercurial incluent HGK (TCL / TK). Ceci est mis en œuvre comme une extension mercurielle et fait partie de la version officielle. Ce spectateur affiche le graphique acyclique dirigé des ensembles de changes d'un référentiel mercuriel. Cette visionneuse peut être invoquée 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 un remplacement HGK nommé HGView qui est écrit en pur python et fournit à la fois les interfaces GTK et QT.
Les outils mercuriels connexes comprennent:
- Les outils connexes pour fusionner incluent (h) GCT (QT) et MELD.
- L'extension Convert permet l'importation des référentiels CVS, Darcs, Git, GNU Arch, Monotone et Subversion.
- NetBeans IDE prend en charge le mercurial de la version 6.
- Tortoise HG fournit une interface de menu conviviale conviviale à Windows, cliquez avec le bouton droit sur Windows.
- VisualHg est un plugin de fournisseur de contrôle de source mercurial pour MS Visual Studio 2008.
- Mercurial Eclipse est un plugin de fournisseur d'équipe Eclipse pour Eclipse 3.3 et plus récent.
Les alternatives pour l'exécution de Git à l'aide d'une GUI incluent:
- Git-CvsServer (qui émule un serveur CVS, permettant à l'utilisation des clients Windows CVS)
- Client Git basé sur Eclipse IDE, basé sur une mise en œuvre Java pure des internes de Git: EGIT
- Le support NetBeans IDE pour GIT est en cours de développement.
- Une extension Windows Explorer (une tortuecvs / tortuesvn-wookalike) a été lancée aux extensions de tortuegit et de git qui est une extension d'explorateur ainsi qu'une interface graphique autonome et un plug-in Visual Studio 2008
Vidéos connexes