Mercurial - Mercurial
Desarrollador (es) | Olivia Mackall |
---|---|
Versión inicial | 19 de abril de 2005 |
Lanzamiento estable | |
Repositorio | |
Escrito en | Python , C y Rust |
Sistema operativo | Similar a Unix , Windows , macOS |
Escribe | Control de versiones |
Licencia | GPL-2.0 o posterior |
Sitio web |
www |
Mercurial es una herramienta de control de revisiones distribuida para desarrolladores de software . Es compatible con Microsoft Windows y sistemas similares a Unix, como FreeBSD , macOS y Linux .
Los principales objetivos de diseño de Mercurial incluyen alto rendimiento y escalabilidad, descentralización, desarrollo colaborativo totalmente distribuido, manejo robusto de archivos binarios y de texto plano , y capacidades avanzadas de ramificación y fusión, sin dejar de ser conceptualmente simple. 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 impulsado 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 hg
(una referencia a Hg, el símbolo químico del elemento mercurio ).
Olivia Mackall originó Mercurial y se desempeñó como su desarrollador principal hasta finales de 2016. Mercurial se lanza como software gratuito bajo la licencia GPL-2.0-o posterior . Se lleva a cabo principalmente mediante el lenguaje de programación Python , pero incluye un binario diff aplicación escrita en C .
Historia
Mackall anunció Mercurial por primera vez el 19 de abril de 2005. El ímpetu para esto fue el anuncio a principios de ese mes de Bitmover de que iban a retirar 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ó unos días después de que Linus Torvalds iniciara el ahora conocido proyecto Git con objetivos similares.
El proyecto del kernel de Linux decidió usar Git en lugar de Mercurial, pero Mercurial ahora se usa en muchos otros proyectos (ver más abajo ). "Git vs. Mercurial" se ha convertido en una de las guerras santas de la cultura hacker .
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 la debacle en curso de Bitkeeper que describía a Larry McVoy como voluble (en el sentido de 'voluble'). Dados los múltiples significados, la abreviatura conveniente y el buen ajuste con mi esquema de nomenclatura preexistente (vea mi dirección de correo electrónico), hizo clic instantáneamente. Mercurial se llama así en honor a Larry. No sé si lo mismo ocurre con Git.
Proyectos de alto perfil como Java, es decir, OpenJDK han utilizado Mercurial (pero ya no lo hace a partir de Java 16).
Diseño
Mercurial usa 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 la transferencia de datos. Mercurial también puede trabajar sobre SSH donde el protocolo es muy similar al protocolo basado en HTTP. De forma predeterminada, utiliza una combinación de 3 vías antes de llamar a las herramientas de combinación externas.
Uso
La Figura 1 muestra algunas de las operaciones más importantes de Mercurial y sus relaciones con los conceptos de Mercurial.
Adopción
Aunque Mercurial no fue seleccionado para administrar las fuentes del kernel de Linux, ha sido adoptado por varias organizaciones, incluidas Facebook , W3C y Mozilla . Facebook está utilizando el lenguaje de programación Rust para escribir Mononoke, un servidor Mercurial diseñado específicamente para soportar grandes repositorios multiproyecto.
En 2013, Facebook adoptó Mercurial y comenzó a trabajar para escalarlo para manejar su gran repositorio de código unificado.
Google también usa Mercurial en su monorepo 'Piper'.
Bitbucket anunció que sus servicios de control de versiones basados en la web terminarían el soporte para Mercurial en junio de 2020 (luego extendido a julio de 2020), explicando que "menos del 1% de los nuevos proyectos lo usan, y las encuestas de desarrolladores indicaron que el 90% de los desarrolladores usan Git". ". Mientras tanto, cientos de usuarios cuestionaron abiertamente el razonamiento para eliminar masivamente los datos históricos, preguntaron por qué no había una advertencia significativa ni un plan de migración formal, y entraron en pánico por el apresuramiento del tiempo en el hilo de soporte oficial de la empresa.
Gestión de repositorios y servidores Mercurial
- Heptapod , una bifurcación de Gitlab para Mercurial de Octobus
- Kallithea , una bifurcación GPLv3 de RhodeCode
- Horno de Fog Creek Software
- Phabricator de Phacility
- RhodeCode por RhodeCode Inc.
Alojamiento de código fuente
Los siguientes sitios web proporcionan alojamiento de código fuente gratuito para los repositorios de Mercurial:
- Bitbucket de Atlassian (obsoleto a partir de febrero de 2020; solo lectura desde julio de 2020)
- Base de código
- FusionForge
- GNU Savannah por FSF
- Heptapodo
- Mozdev
- OSDN
- Otros
- Forzosamente
- Puszcza (un sitio hermano de GNU Savannah, alojado en Ucrania)
- FuenteForge
- fuente
- TuxFamily
Proyectos de código abierto que utilizan Mercurial
Algunos proyectos que utilizan el RCS distribuido de Mercurial:
Ver también
- Comparación de software de control de versiones
- Control de versiones distribuido
- Lista de software de control de versiones
Notas
Referencias
enlaces externos
- Mackall, Matt, "FLOSS Podcast" , esta semana en tecnología
- O'Sullivan, Bryan (2009), Mercurial: La guía definitiva (libro), O'Reilly, disponible gratuitamente en línea
- Spolsky, Joel, Mercurial tutorial , archivado desde el original el 13 de junio de 2016 , consultado el 6 de abril de 2010
- Un tutorial de Mercurial basado en ejemplos (PDF) , SE : Jemander cubriendo tanto el uso básico como el avanzado
- "Mercurial: una alternativa a git" , LWN
- "¿Subversion o CVS, Bazaar o Mercurial? Comparación de cuatro sistemas de control de versiones de código abierto" , JavaWorld , septiembre de 2007
- "Mercurial", TechTalk (video)
- Lista de proyectos que utilizan Mercurial de la wiki de Mercurial
- Página web oficial