Mercurial VS. Git
- 3674
- 800
- Rubén Alarcón
Git y Mercurial son las herramientas de software gratuitas para el control de revisión distribuida y la administración del código fuente de 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 BitMover de que estaban retirando la versión gratuita de Bitkeeper, que se había utilizado para los requisitos de control de versiones del proyecto Linux Kernel. El creador de Mercurial Matt Mackall decidió escribir un sistema de control de versiones distribuido como reemplazo para usar con el núcleo de Linux. Mackall anunció por primera vez Mercurial el 19 de abril de 2005.
Git fue creado por Linus Torvalds para el desarrollo del núcleo 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 auto-anfitrión a partir del 7 de abril. La primera fusión de múltiples ramas se realizó el 18 de abril.
El proyecto de kernel de Linux decidió usar git en lugar de mercurial, pero Mercurial ahora es utilizado por muchos otros proyectos ahora.
Cuadro comparativo
Diferencias - similitudes -Git | Mercurial | |
---|---|---|
|
| |
Servidor web incorporado | No | Sí |
Ganchos previos a eventos | Sí | Sí |
Conversiones de final de línea | Sí | Sí |
Etiquetas | Sí | Sí |
Apoyo internacional | Parcial | Sí |
Renombres de archivos | Sí (implícito) | Sí |
Fusionar el nombre de los archivos de archivo | Sí | Sí |
Enlaces simbólicos | Sí | Sí |
Fuente abierta | Sí | Sí |
Revisiones firmadas | Sí | Sí |
IDS de revisión | Hashes sha-1 | Números, hashes SHA-1 |
Comodidad atómica | Sí | Sí |
Modelo de historia | Instantánea | Conjunto de cambios |
Tamaño del repositorio | O (parche) (gran notación) | O (parche) (gran notación) |
Modelo de concurrencia | Unir | Unir |
Sistemas operativos | Unix, Windows, Mac OS X | Unix, Windows, Mac OS X |
Área de ensayo | Sí | No |
Rama external | Sí | No |
Costo | Gratis | Gratis |
Palabra clave RCS | Sí, pero no recomendado | Vía complemento Bundled |
Pago / clon de saludo | Sí | Extensión de Bugzilla |
Seguimiento de nombre de archivo/Dir | Cambiar el nombre de detección | Cambiar el nombre de seguimiento |
Pago subdirectorio/clon | No | No |
Modelo de repositorio | Repartido | Repartido |
Permiso manteniendo | Solo bit de ejecución | Solo bit de ejecución |
Protocolos de red | Personalizado, personalizado sobre SSH, RSYNC, HTTP, Bundles de correo electrónico | Http, personalizado sobre SSH, paquetes de 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 fusiones | Sí | Sí |
Integración de rastreador de errores | No | TRAC (a través del complemento) |
Licencia | GPL V2 | GPL V2 |
Sitio web | git-scm.comunicarse | www.selénico.com/mercurial |
Sistema operativo | Posix, peor soporte de Windows | Unix, Windows, Mac OS X |
Introducción (de Wikipedia) | Git es un control de revisión distribuido gratuito o un proyecto 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 núcleo de Linux. | Mercurial es una herramienta de control de revisión distribuida y multiplataforma para desarrolladores de software. Se implementa principalmente utilizando el lenguaje de programación de Python, pero incluye una implementación de diferencias binarias escrita en C. |
Tipo | Control de revisión | Control de revisión |
Objetivos de diseño
Los principales objetivos de diseño de Mercurial incluyen un alto rendimiento, escalabilidad, ser un desarrollo colaborativo completamente sin servidor, totalmente distribuido, manejo robusto de texto plano y archivos binarios, y capacidades avanzadas de ramificación y fusión, al tiempo que permanece conceptualmente simple. Incluye una interfaz web integrada.
Uno de los objetivos clave de diseño de Linus Torvalds para GIT fue la velocidad y la eficiencia de las operaciones. Otros criterios de diseño incluyeron fuertes salvaguardas contra la corrupción, ya sea accidental o maliciosa.
Proyectos utilizando git vs proyectos utilizando mercurial
Varios proyectos de software de alto perfil ahora usan Git para el control de revisiones, sobre todo el núcleo de Linux, Perl, Samba, X.Org Server, Qt (Kepskit), una computadora portátil por niño (OLPC) Desarrollo central, Ruby on Rails Web Marco, VLC, Yui, Merb, Wine, SWI Prolog, Gnome, Gstreamer, Dragonfly BSD y la plataforma Mobile Android Mobile Platform Mobile.
Los proyectos que usan Mercurial incluyen AdBlock Plus, Aldrin, Audacious, Dovecot IMAP Server, GNU Octave, NXOS, Nuxeo, Growl, Moinmoin Wiki Software, Mozilla, Mutt (Cliente de correo electrónico), NetBeans (IDE), OpenJDK, Python, Sage, Sun MicroSystem OpenSolaris's OpenSolaris's OpenSolaris y el software OpenSource de Oracle como BTRFS.
Git vs portabilidad mercurial
Mercurial se escribió 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, incluidos BSD y Solaris.
Git también se ejecuta en Windows. Hay dos variantes:
- Un puerto nativo de Microsoft Windows, llamado msysgit, se acerca a la finalización. A partir de febrero de 2009, hay instaladores descargables listos para probar que algunos comandos aún no están disponibles desde las GUI, y deben invocarse desde la línea de comando.
- Git también se ejecuta sobre Cygwin (una capa de emulación Posix), aunque es notablemente más lento, especialmente para los comandos escritos como scripts de shell.
Interfaz de usuario para Git vs Mercurial
Todas las operaciones de Mercurial se invocan como opciones de palabras clave para su programa de controladores 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 mercurial y es parte de la versión oficial. Este espectador muestra el gráfico acíclico dirigido de los conjuntos de cambios de un repositorio mercurial. Este visor se puede invocar a través del comando 'Vista HG', 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 Pure Python y proporciona interfaces GTK y QT.
Las herramientas mercuriales relacionadas incluyen:
- Las herramientas relacionadas para la fusión incluyen (H) GCT (QT) y Meld.
- La extensión de Convierte permite la importación de CVS, DARC, GIT, GNU Arch, Montonone y Repositorios de subversión.
- NetBeans IDE admite Mercurial de la versión 6.
- Tortoise HG proporciona una interfaz de menú fácil de usar de Windows.
- VisualHG es un complemento de proveedor de control de fuente mercurial para MS Visual Studio 2008.
- Mercurial Eclipse es un complemento de proveedor de equipo de Eclipse para Eclipse 3.3 y más nuevo.
Alternativas para ejecutar git usando una GUI incluyen:
- git-cvsserver (que emula un servidor CVS, permitiendo el uso de clientes CVS de Windows)
- Cliente Git basado en Eclipse IDE, basado en una implementación pura de Java de las partes internas de Git: EGIT
- El soporte de NetBeans IDE para GIT está en desarrollo.
- Se inició una extensión de explorador de Windows (una tortoisecvs/tortoisesvn-blookike) en Tortoisegit y Git Extensions, que es una extensión de explorador, así como una GUI independiente y un complemento Visual Studio 2008
Videos relacionados