Mercurial vs. Git

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..

Gráfica comparativa

Cuadro comparativo Git versus Mercurial
GitMercurial
Servidor web incorporado No
Ganchos pre / post evento
Conversiones de fin de línea
Etiquetas
Apoyo internacional Parcial
Archivos renombrados Si (implícito)
Fusionar nombres de archivos
Enlaces simbolicos
Fuente abierta
Revisiones firmadas
ID de revisión SHA-1 hashes Números, hash SHA-1
Atómica confirma
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 No
Rama externa No
Costo Gratis Gratis
RCS Keyword Sí, pero no recomendado a través de plugin incluido
Checkout superficial / clon 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
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

Contenido: Mercurial vs Git.

  • 1 objetivos de diseño
  • 2 Proyectos usando Git vs Proyectos usando Mercurial
  • 3 Git vs Portabilidad Mercurial
  • 4 Interfaz de usuario para Git vs Mercurial
  • 5 Videos Relacionados
  • 6 referencias

Metas de diseño

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.

Proyectos usando Git vs Proyectos usando Mercurial

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.

Git vs portabilidad mercurial

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:

  • Un puerto nativo de Microsoft Windows, llamado msysgit, se acerca a su finalización. A partir de febrero de 2009, hay instaladores descargables listos para la prueba. Algunos comandos aún no están disponibles en las GUI y deben invocarse desde la línea de comandos..
  • Git también se ejecuta sobre Cygwin (una capa de emulación POSIX), aunque es notablemente más lento, especialmente para 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 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:

  • Herramientas relacionadas para fusionar incluyen (h) gct (Qt) y Meld.
  • La extensión de conversión permite importar desde CVS, Darcs, git, GNU Arch, Monotone y repositorios de Subversion.
  • Netbeans IDE soporta Mercurial desde la versión 6.
  • Tortoise Hg ofrece una interfaz de menú fácil de usar y con el botón derecho de Windows.
  • VisualHG es un complemento del proveedor de control de fuente Mercurial para MS Visual Studio 2008.
  • Mercurial Eclipse es un complemento del proveedor del equipo de Eclipse para Eclipse 3.3 y más reciente.

Las 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 IDE de Eclipse, basado en una implementación Java pura de los componentes internos de Git: egit
  • El soporte de NetBeans IDE para Git está en desarrollo.
  • Se inició una extensión de Windows Explorer (TortoiseCVS / TortoiseSVN-lookalike) en TortoiseGit y Git Extensions, que es una extensión de explorador, así como una GUI independiente y un complemento de Visual Studio 2008

Videos relacionados

Referencias

  • wikipedia: Git_ (software)
  • wikipedia: mercurial_ (software)
  • El desarrollador de Mercurial, Martin Geisler, compara las características de Git y Mercural en profundidad.