Mercurial

herramienta de control de revisiones para desarrolladores de software

Mercurial es un sistema de control de versiones multiplataforma, para desarrolladores de software. Está implementado principalmente haciendo uso del lenguaje de programación Python, pero incluye una implementación binaria de diff escrita en C. Rust también se utiliza para mejorar el rendimiento.[1]​ Mercurial fue escrito originalmente para funcionar sobre GNU/Linux. Ha sido adaptado para Windows, Mac OS X y la mayoría de otros sistemas tipo Unix. Mercurial es, sobre todo, un programa para la línea de comandos. Todas las operaciones de Mercurial se invocan como opciones dadas a su programa motor, hg (cuyo nombre hace referencia al símbolo químico del mercurio).

Mercurial
Parte de Software Freedom Conservancy
Información general
Tipo de programa Control de versiones distribuido
Desarrollador
  • Matt Mackall
  • Pierre-Yves David
Lanzamiento inicial 19 de abril de 2005
Vulnerabilidades
Licencia
  • GPLv2
  • GNU General Public License, versión 2.0 o posterior
Información técnica
Programado en
Versiones
Última versión estable 6.715 de marzo de 2024
Última versión en pruebas 6.4rc02 de marzo de 2023
Enlaces

Las principales metas de desarrollo de Mercurial incluyen un gran rendimiento y escalabilidad; desarrollo completamente distribuido, sin necesidad de un servidor; gestión robusta de archivos tanto de texto como binarios; y capacidades avanzadas de ramificación e integración, todo ello manteniendo sencillez conceptual.[2]​ Incluye una interfaz web integrada.

El creador y desarrollador principal de Mercurial es Matt Mackall. El código fuente se encuentra disponible bajo los términos de la licencia GNU GPL versión 2, lo que clasifica a Mercurial como software libre.

Información técnica editar

Al igual que git y Monotone, Mercurial usa resúmenes SHA para identificar revisiones.

Para el acceso a repositorios mediante red, Mercurial usa un protocolo eficiente, basado en HTTP, que persigue reducir el tamaño de los datos a transferir, así como la proliferación de peticiones y conexiones nuevas. Mercurial puede funcionar también sobre ssh, siendo el protocolo muy similar al basado en HTTP.

Documentación editar

Bryan O'Sullivan ha escrito un extenso manual de referencia, Distributed revision control with Mercurial.[3]​ El manual es de libre acceso bajo los términos de la Open Publication License.

Historia editar

Mackall hizo pública la existencia de Mercurial el 19 de abril de 2005.[4]​ El estímulo que llevó a esto fue el anuncio de Bitmover, publicado anteriormente aquel mismo mes, informando que retirarían la versión gratuita de BitKeeper.

Se había estado usando BitKeeper debido a los requisitos de control de versiones del proyecto del núcleo Linux. Mackall decidió escribir un sistema de control distribuido de versiones como sustituto para usarlo con el núcleo Linux. Este proyecto comenzó aproximadamente al mismo tiempo que otro denominado git, iniciado por el propio Linus Torvalds con objetivos similares.

El proyecto Linux decidió usar Git en lugar de Mercurial. Sin embargo, muchos otros proyectos usan este último.

Software relacionado editar

  • Entre las interfaces GUI para Mercurial se encuentra Hgk (Tcl/Tk). Se ha implementado como extensión a Mercurial y es parte de la versión oficial. Este visor muestra el grafo acíclico dirigido de las listas de cambios de un repositorio de Mercurial. Este visor se puede invocar mediante la orden 'hg view', si la extensión está activa. hgkse basó originalmente en una herramienta similar para git llamada gitk. También existe un cliente en Gtk bautizado hgview Archivado el 2 de diciembre de 2020 en Wayback Machine., escrito completamente en Python y mantenido por la empresa Logilab.

Proyectos que usan Mercurial editar

Algunos de los proyectos que usan el RCS distribuido Mercurial:[5]

Véase también editar

Referencias editar

  1. «PerformancePlan - Mercurial». www.mercurial-scm.org. Consultado el 15 de marzo de 2021. 
  2. Matt Mackall, Towards a Better SCM: Revlog and Mercurial, Ottawa Linux Symposium Proceedings, 2006.
  3. O'Sullivan, Bryan (1 de enero de 2007). Distributed revision control with Mercurial. 
  4. Matt Mackall (20 de abril de 2005), «Mercurial v0.1 - a minimal scalable distributed SCM», lista de correo Linux-Kernel, archivado del original el 5 de agosto de 2012, https://archive.today/20120805231410/http://www.ussg.iu.edu/hypermail/linux/kernel/0504.2/0670.html. 
  5. Algunos proyectos que usan Mercurial
  6. Timo Sirainen (19 de mayo de 2007), «CVS to Mercurial switch», lista de correo Dovecot-news, http://www.dovecot.org/list/dovecot-news/2007-May/000044.html. 
  7. Reed, J. Paul (12 de abril de 2007). «Version Control System Shootout Redux Redux». Archivado desde el original el 21 de marzo de 2009. 
  8. «Switch to hg.netbeans.org completed». Enero de 2008. Archivado desde el original el 18 de septiembre de 2012. Consultado el 2 de noviembre de 2008. 
  9. James Gosling (Octubre de 2006). James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1. Entrevista con Robert Eckstein. 
  10. «OpenSolaris SCM Project History». 5 de octubre de 2006. Archivado desde el original el 25 de septiembre de 2009. 
  11. Ian Pratt (1 de julio de 2005), «mercurial now live», lista de correo Xen-devel, http://lists.xensource.com/archives/html/xen-devel/2005-07/msg00003.html. 
  12. «Oracle Opensource Software Repositories». 25 de agosto de 2008. Archivado desde el original el 17 de octubre de 2008. Consultado el 2 de noviembre de 2008. 

Enlaces externos editar