Articulo de referencia

Mercurial

{{Cite web |url=https://www.mercurial-scm.org/wiki/mpm |title=mpm - Mercurial |website=Mercurial |access-date=2023-02-24}} Pierre-Yves David"},"released":{"wt":"{{Start date and...

Mercurial es una herramienta de control de versiones distribuida para desarrolladores de software . Es compatible con Microsoft Windows , Linux y otros sistemas tipo Unix , como FreeBSD y macOS .

Los principales objetivos de diseño de Mercurial incluyen alto rendimiento y escalabilidad, descentralización, desarrollo colaborativo totalmente distribuido, manejo robusto de archivos de texto plano y binarios , y capacidades avanzadas de ramificación y fusión, sin dejar de ser conceptualmente simple. [ 5 ] Incluye una interfaz web integrada. Mercurial también ha tomado medidas para facilitar la transición a los usuarios de otros sistemas de control de versiones, en particular Subversion . Mercurial es principalmente un programa de línea de comandos , pero hay extensiones de interfaz gráfica de usuario disponibles, por ejemplo TortoiseHg , y varios IDE ofrecen soporte para el control de versiones con Mercurial. Todas las operaciones de Mercurial se invocan como argumentos de su programa controlador (una referencia a Hg, el símbolo químico del elemento mercurio ).hg

Olivia Mackall [ a ] ​​creó Mercurial y fue su desarrolladora principal hasta finales de 2016. Mercurial se publica como software libre bajo la licencia GPL-2.0 o posterior . [ 7 ] Está implementado principalmente utilizando el lenguaje de programación Python , pero incluye una implementación de diff binario escrita en C .

Historia

Mackall anunció Mercurial por primera vez el 19 de abril de 2005. [ 2 ] El impulso para esto fue el anuncio a principios de ese mes por parte de Bitmover de que retirarían la versión gratuita de BitKeeper debido al desarrollo de SourcePuller .

BitKeeper se había utilizado para los requisitos de control de versiones del proyecto del kernel de Linux . Mackall decidió escribir un sistema de control de versiones distribuido como reemplazo para su uso con el kernel de Linux. Este proyecto comenzó pocos días después de que Linus Torvalds iniciara el ahora conocido proyecto Git con objetivos similares. [ 8 ]

El proyecto del kernel de Linux decidió usar Git en lugar de Mercurial, pero Mercurial ahora es utilizado por muchos otros proyectos (ver más abajo ).

En una respuesta en la lista de correo de Mercurial, Olivia Mackall explicó cómo se eligió el nombre "Mercurial":

Poco antes del primer lanzamiento, leí un artículo sobre el escándalo de Bitkeeper que describía a Larry McVoy como voluble (en el sentido de «inconstante»). Dados los múltiples significados, la abreviatura conveniente y su buena sintonía con mi esquema de nombres preexistente (véase mi dirección de correo electrónico), lo entendí al instante. Por lo tanto, Mercurial se llama así en honor a Larry. Desconozco si lo mismo se aplica a Git. [ 9 ] [ 10 ]

Proyectos de alto perfil como OpenJDK han utilizado Mercurial en el pasado, aunque OpenJDK ya no lo hace desde Java 16. [ 11 ]

Diseño

Mercurial utiliza hashes SHA-1 para identificar las revisiones. Para acceder al repositorio a través de una red, Mercurial emplea un protocolo basado en HTTP que busca reducir las solicitudes de ida y vuelta, las nuevas conexiones y la transferencia de datos. Mercurial también puede funcionar mediante SSH, cuyo protocolo es muy similar al basado en HTTP. Por defecto, realiza una fusión de tres vías antes de recurrir a herramientas de fusión externas.

Uso

La figura 1 muestra algunas de las operaciones más importantes de Mercurial y su relación con los conceptos de Mercurial.

Figura 1: Algunas operaciones importantes de Mercurial y sus relaciones.

Adopción

Aunque Mercurial no fue seleccionado para gestionar las fuentes del kernel de Linux, fue adoptado por varias organizaciones. Facebook está utilizando el lenguaje de programación Rust para escribir Mononoke, [ 12 ] [ 13 ] un servidor Mercurial diseñado específicamente para soportar grandes repositorios de múltiples proyectos.

En 2013, Facebook adoptó Mercurial y comenzó a trabajar en su escalabilidad para manejar su gran repositorio de código unificado. [ 14 ]

Google también utiliza el cliente Mercurial como interfaz en su backend monorepo 'Piper' basado en la nube. [ 15 ]

Bitbucket anunció que sus servicios de control de versiones basados ​​en la web dejarían de dar soporte a Mercurial en junio de 2020 (luego se extendió hasta julio de 2020), [ 16 ] explicando que "menos del 1% de los proyectos nuevos lo utilizan, y las encuestas a desarrolladores indicaron que el 90% de los desarrolladores utilizan Git". [ 17 ]

Xen usó Mercurial durante muchos años, pero se pasó a Git en 2013. [ 18 ]

Mozilla utilizó Mercurial durante muchos años, pero comenzó a dejar de darle soporte en favor de Git en 2023. [ 19 ]

Servidores Mercurial y gestión de repositorios

Alojamiento de código fuente

Los siguientes sitios web ofrecen alojamiento gratuito de código fuente para repositorios de Mercurial:

El sitio web de Mercurial menciona otras forjas .

Proyectos de código abierto que utilizan Mercurial

Algunos proyectos que utilizan el RCS distribuido de Mercurial: [ 25 ]

Proyectos de código abierto que anteriormente utilizaban Mercurial

Véase también

Notas

  1. 1 2 Olivia Mackall era conocida anteriormente como Matt Mackall. [ 6 ]

Referencias

  1. "mpm - Mercurial" . Mercurial . Consultado el 24 de febrero de 2023 .
  2. 1 2 Mackall, Olivia (20 de abril de 2005). "Mercurial v0.1: un SCM distribuido escalable mínimo" . Núcleo de Linux (Lista de correo).
  3. "Mercurial 7.2.3 (2026-06-29)" .
  4. "Archivo README en el subdirectorio rust, rama estable" . 17 de septiembre de 2025. Consultado el 27 de septiembre de 2025 .
  5. Mackall, Olivia. "Hacia una mejor gestión de la cadena de suministro: Revlog y Mercurial" (PDF) . Mercurial . Archivado (PDF) del original el 26 de mayo de 2019. Recuperado el 26 de mayo de 2019 .
  6. "Matt Mackall ahora es Olivia Mackall" . Mercurial . Consultado el 28 de mayo de 2021 .
  7. "Relicensing" , Mercurial (wiki), Mercurial-scm.org.
  8. Mackall, Olivia (29 de abril de 2005). "Re: Mercurial 0.4b vs git patchbomb benchmark" . Linux kernel (Lista de correo).{{cite mailing list}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  9. Mackall, Olivia (15 de febrero de 2012). "¿Por qué Matt eligió el nombre Mercurial?" . Mercurial (Lista de correo) . Consultado el 7 de junio de 2016 .
  10. Torvalds ha dicho: "Soy un egocéntrico de mierda, así que les pongo mi nombre a todos mis proyectos. Primero Linux, ahora Git."
  11. 1 2 "JEP 357: Migración de Mercurial a Git" . 12 de abril de 2025.
  12. "Un servidor de control de versiones Mercurial, diseñado específicamente para soportar grandes monorepos: facebookexperimental/mononoke" . 31 de enero de 2019 vía GitHub.
  13. Szorc, Gregory (17 de octubre de 2016). "Notas del sprint de Mercurial 4.0" . mozilla.dev.version-control. Google Groups . Consultado el 22 de noviembre de 2021 .
  14. Goode, Durham; Agarwal, Siddharth (7 de enero de 2014). "Escalando Mercurial en Facebook" . Facebook Code . Recuperado el 13 de octubre de 2015 vía Facebook.
  15. "¿Por qué Google almacena miles de millones de líneas de código en un solo repositorio?" Julio de 2016.
  16. "Fin del soporte para Mercurial en Bitbucket" . 21 de abril de 2020. Archivado del original el 1 de julio de 2020.
  17. 1 2 Chan, Denise (20 de agosto de 2019). "Eliminación del soporte para Mercurial en Bitbucket" . Bitbucket . Recuperado el 29 de agosto de 2019 .
  18. 1 2 "Xen ya está oficialmente en git" . 25 de febrero de 2013.
  19. 1 2 "Mozilla trasladará el desarrollo de Firefox de Mercurial a GitHub de Microsoft • DEVCLASS" . 7 de noviembre de 2023.
  20. "Alojamiento de Git, Mercurial y Subversion" . Características . Codebase HQ. 4 de marzo de 2013. Archivado del original el 30 de marzo de 2014. Consultado el 4 de marzo de 2013 .
  21. "Comencemos el desarrollo de software de código abierto con Mercurial (Hg) – OSDN" . osdn.net .
  22. "Prueba Helix TeamHub gratis | Perforce" . info.perforce.com .
  23. «Bienvenidos [ Puszcza ] » . ps.gnu.org.ua.
  24. "TuxFamily: Alojamiento web gratuito para gente libre" . tuxfamily.org
  25. "Algunos proyectos que usan Mercurial" , Mercurial (wiki), Mercurial-scm.org.
  26. Reed, J Paul (12 de abril de 2007). "Version Control System Shootout Redux Redux" .
  • Sitio web oficialEdita esto en Wikidata
Obtenido de " https://en.wikipedia.org/w/index.php?title=Mercurial&oldid=1361261398 "