stringtranslate.com

Mercurial

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

Los principales objetivos de diseño de Mercurial incluyen alto rendimiento y escalabilidad, descentralización, desarrollo colaborativo completamente distribuido, manejo robusto de archivos de texto simple 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 para los usuarios de otros sistemas de control de versiones, particularmente Subversion . Mercurial es principalmente un programa controlado por 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 para su programa controlador (una referencia a Hg, el símbolo químico del elemento mercurio ).hg

Olivia Mackall [a] originó Mercurial y se desempeñó como su desarrolladora principal hasta fines de 2016. Mercurial se publica como software libre bajo la licencia GPL-2.0 o posterior . [7] Se implementa principalmente utilizando el lenguaje de programación Python , pero incluye una implementación de diferencias binarias 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 estaban retirando 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 núcleo Linux . Mackall decidió escribir un sistema de control de versiones distribuido como reemplazo para su uso con el núcleo Linux. Este proyecto comenzó unos 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ó utilizar Git en lugar de Mercurial, pero ahora muchos otros proyectos utilizan Mercurial (ver a continuación).

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

Poco antes del primer lanzamiento, leí un artículo sobre la debacle de Bitkeeper que describía a Larry McVoy como voluble (en el sentido de "voluble"). Dados los múltiples significados, la abreviatura conveniente y la buena combinación con mi esquema de nombres preexistente (ver mi dirección de correo electrónico), me enganché al instante. Mercurial recibe ese nombre en honor a Larry. No sé si lo mismo se aplica a Git. [9] [10]

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

Diseño

Mercurial utiliza hashes SHA-1 para identificar revisiones. Para el acceso al repositorio a través de una red, Mercurial utiliza un protocolo basado en HTTP que busca reducir las solicitudes de ida y vuelta, las nuevas conexiones y los datos transferidos. Mercurial también puede funcionar a través de SSH , donde el protocolo es muy similar al protocolo basado en HTTP. De forma predeterminada, utiliza una combinación de tres vías antes de llamar a herramientas de combinación externas.

Uso

La figura 1 muestra algunas de las operaciones más importantes en Mercurial y sus relaciones con los conceptos de Mercurial.

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

Adopción

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

En 2013, Facebook adoptó Mercurial y comenzó a trabajar para escalarlo para manejar su repositorio de código grande y unificado. [15]

Google también utiliza el cliente Mercurial como interfaz en su back-end monorepositorio 'Piper' basado en la nube. [16]

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

Gestión de servidores y repositorios Mercurial

Alojamiento de código fuente

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

Proyectos de código abierto que utilizan Mercurial

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

Véase también

Notas

  1. ^ ab Olivia Mackall anteriormente era Matt Mackall. [6]

Referencias

  1. ^ "mpm - Mercurial". Mercurial . Consultado el 24 de febrero de 2023 .
  2. ^ ab Mackall, Matt (20 de abril de 2005). "Mercurial v0.1: un SCM distribuido, escalable y mínimo". Kernel de Linux (lista de correo).
  3. ^ "cambios 50269:05de4896508e estable 6.4rc0".
  4. ^ "Archivo README en el subdirectorio rust, rama master". 24 de enero de 2020 . Consultado el 30 de enero de 2020 .
  5. ^ Mackall, Matt. "Hacia un mejor SCM: Revlog y Mercurial" (PDF) . Mercurial . Archivado (PDF) del original el 26 de mayo de 2019 . Consultado el 26 de mayo de 2019 .
  6. ^ "Matt Mackall ahora es Olivia Mackall". Mercurial . Consultado el 28 de mayo de 2021 .
  7. ^ "Renovación de licencias", Mercurial (wiki), Mercurial-scm.org.
  8. ^ Mackall, Matt (29 de abril de 2005). "Re: Comparación de Mercurial 0.4b con git patchbomb". Kernel de Linux (lista de correo). Archivado desde el original el 9 de julio de 2012.
  9. ^ Mackall, Matt (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 bastardo egoísta, así que nombro todos mis proyectos con mi nombre. Primero Linux, ahora Git".
  11. ^ James Gosling (octubre de 2006). "Open Sourcing Sun's Java Platform Implementations, Part 1" (Entrevista). Entrevista realizada por Robert Eckstein. Sun. Archivado desde el original el 1 de marzo de 2009.{{cite interview}}: CS1 maint: URL no apta ( enlace )
  12. ^ "Escalando Mercurial en Facebook". 7 de enero de 2014.
  13. ^ "Un servidor de control de código fuente Mercurial, diseñado específicamente para soportar grandes repositorios mono: facebookexperimental/mononoke". 31 de enero de 2019 – vía GitHub.
  14. ^ Szorc, Gregory (17 de octubre de 2016). "Notas del sprint de Mercurial 4.0". mozilla.dev.version-control. Grupos de Google . Consultado el 22 de noviembre de 2021 .
  15. ^ Goode, Durham; Agarwal, Siddharth (7 de enero de 2014). "Scaling Mercurial at Facebook". Código de Facebook . Consultado el 13 de octubre de 2015 , a través de Facebook.
  16. ^ "Por qué Google almacena miles de millones de líneas de código en un único repositorio".
  17. ^ "Eliminación del soporte de Mercurial en Bitbucket". 21 de abril de 2020. Archivado desde el original el 1 de julio de 2020.
  18. ^ ab Chan, Denise (20 de agosto de 2019). «Eliminación del soporte de Mercurial en Bitbucket». Bitbucket . Consultado el 29 de agosto de 2019 .
  19. ^ "Alojamiento en Git, Mercurial y Subversion". Características . Codebase HQ. 4 de marzo de 2013. Archivado desde el original el 30 de marzo de 2014 . Consultado el 4 de marzo de 2013 .
  20. ^ "Comencemos el desarrollo de OSS con Mercurial (Hg) – OSDN". osdn.net .
  21. ^ "Alojamiento", Mercurial (wiki), Mercurial-scm.org.
  22. ^ "Prueba Helix TeamHub gratis | Perforce". info.perforce.com .
  23. ^ "Bienvenido [Puszcza]". ps.gnu.org.ua.
  24. ^ "TuxFamily: alojamiento gratuito para gente libre". tuxfamily.org .
  25. ^ "Algunos proyectos que utilizan Mercurial", Mercurial (wiki), Mercurial-scm.org.
  26. ^ Reed, J Paul (12 de abril de 2007). "Version Control System Shootout Redux Redux".
  27. ^ mozilla-mobile/fenix, Mozilla Mobile, 19 de marzo de 2021 , consultado el 19 de marzo de 2021

Enlaces externos