Git y Mercurial Son herramientas de software gratuitas para el control de revisión distribuido y la gestión del código fuente del software..
Tanto Git como Mercurial se iniciaron aproximadamente al mismo tiempo con objetivos similares. El estímulo inmediato fue el anuncio en abril de 2005 por parte de Bitmover de que estaban retirando la versión gratuita de BitKeeper, que se había utilizado para los requisitos de control de versión del proyecto del kernel de Linux. El creador de Mercurial, Matt Mackall, decidió escribir un sistema de control de versiones distribuido como un reemplazo para el uso con el kernel de Linux. Mackall anunció por primera vez Mercurial el 19 de abril de 2005..
Git fue creado por Linus Torvalds para el desarrollo del kernel de Linux, con énfasis en ser rápido. El desarrollo de Git comenzó el 3 de abril de 2005. El proyecto se anunció el 6 de abril y se convirtió en alojamiento independiente a partir del 7 de abril. La primera fusión de varias sucursales se realizó el 18 de abril..
El proyecto del kernel de Linux decidió usar Git en lugar de Mercurial, pero Mercurial ahora es usado por muchos otros proyectos..
Git | Mercurial | |
---|---|---|
Servidor web incorporado | No | Sí |
Ganchos pre / post evento | Sí | Sí |
Conversiones de fin de línea | Sí | Sí |
Etiquetas | Sí | Sí |
Apoyo internacional | Parcial | Sí |
Archivos renombrados | Si (implícito) | Sí |
Fusionar nombres de archivos | Sí | Sí |
Enlaces simbolicos | Sí | Sí |
Fuente abierta | Sí | Sí |
Revisiones firmadas | Sí | Sí |
ID de revisión | SHA-1 hashes | Números, hash SHA-1 |
Atómica confirma | Sí | Sí |
Modelo de historia | Instantánea | Changeset |
Tamaño del repositorio | O (parche) (notación Big O) | O (parche) (notación Big O) |
Modelo de concurrencia | Unir | Unir |
Sistemas operativos | Unix-like, Windows, Mac OS X | Unix-like, Windows, Mac OS X |
Área de ensayo | Sí | No |
Rama externa | Sí | No |
Costo | Gratis | Gratis |
RCS Keyword | Sí, pero no recomendado | a través de plugin incluido |
Checkout superficial / clon | Sí | Extensión de bugzilla |
Seguimiento de nombre de archivo / dir | Cambio de nombre detección | Cambiar el nombre de seguimiento |
Subdirectorio de pago / clonación | No | No |
Modelo de repositorio | Repartido | Repartido |
Mantenimiento de permisos | Solo bit de ejecución | Solo bit de ejecución |
Protocolos de red | personalizado, personalizado sobre ssh, rsync, HTTP, paquetes de correo electrónico | HTTP, paquetes personalizados a través de ssh, correo electrónico (con complemento estándar) |
Desarrollado por | Junio Hamano, Linus Torvalds | Matt Mackall |
Mantenido por | Junio Hamano | Matt Mackall |
Escrito en | C, Bourne Shell, Perl | Python y C |
Seguimiento de fusión | Sí | Sí |
Integración de Bug Tracker | No | Trac (a través de plugin) |
Licencia | GPL v2 | GPL v2 |
Sitio web | git-scm.com | www.selenic.com/mercurial |
OS | POSIX, peor soporte de Windows | Unix-like, Windows, Mac OS X |
Introducción (de Wikipedia) | Git es un proyecto de control de revisión distribuido gratuito o de gestión de código fuente de software con énfasis en ser rápido. Git fue creado inicialmente por Linus Torvalds para el desarrollo del kernel de Linux. | Mercurial es una herramienta multiplataforma de control de revisión distribuida para desarrolladores de software. Se implementa principalmente utilizando el lenguaje de programación Python, pero incluye una implementación de diferencia binaria escrita en C. |
Tipo | Control de revisión | Control de revisión |
Los principales objetivos de diseño de Mercurial incluyen alto rendimiento, escalabilidad, ser un desarrollo colaborativo totalmente distribuido, sin servidor, manejo robusto tanto de texto simple como de archivos binarios, y capacidades avanzadas de bifurcación y fusión, sin dejar de ser conceptualmente simple. Incluye una interfaz web integrada..
Uno de los objetivos de diseño clave de Linus Torvalds para Git fue la velocidad y la eficiencia de las operaciones. Otros criterios de diseño incluyeron fuertes garantías contra la corrupción, ya sea accidental o maliciosa.
Varios proyectos de software de alto perfil ahora usan Git para el control de revisiones, especialmente el núcleo de Linux, Perl, Samba, X.org Server, Qt (kit de herramientas), desarrollo del núcleo de una Laptop por niño (OLPC), marco web de Ruby on Rails, VLC , YUI, Merb, Wine, SWI Prolog, GNOME, GStreamer, DragonFly BSD y la plataforma móvil Android.
Los proyectos que utilizan Mercurial incluyen Adblock Plus, Aldrin, Audacious, el servidor IMAP de Dovecot, Octava de GNU, NxOS, Nuxeo, Growl, software de wiki MoinMoin, Mozilla, Mutt (cliente de correo electrónico), Netbeans (IDE), OpenJDK, Python, SAGE, OpenSolaris de Sun Microsystem y el software Opensource de Oracle como Btrfs.
Mercurial fue escrito inicialmente para ejecutarse en Linux. Se ha portado a Windows, Mac OS X y la mayoría de los otros sistemas similares a Unix. Mercurial es principalmente un programa de línea de comandos..
Git se desarrolla principalmente en Linux, pero se puede usar en otros sistemas operativos similares a Unix, incluyendo BSD y Solaris.
Git también se ejecuta en Windows. Hay dos variantes:
Todas las operaciones de Mercurial se invocan como opciones de palabras clave para su programa controlador hg, una referencia al símbolo químico del elemento mercurio. Las interfaces GUI para Mercurial incluyen Hgk (Tcl / Tk). Esto se implementa como una extensión de Mercurial, y es parte de la versión oficial. Este visor muestra el gráfico acíclico dirigido de los conjuntos de cambios de un repositorio de Mercurial. Este visor puede invocarse mediante el comando 'hg view', si la extensión está habilitada. hgk se basó originalmente en una herramienta similar para git llamada gitk. Hay un reemplazo de hgk llamado hgview que está escrito en python puro y proporciona interfaces gtk y qt.
Las herramientas relacionadas de Mercurial incluyen:
Las alternativas para ejecutar Git usando una GUI incluyen: