Mercurial - Mercurial
Desenvolvedor (s) | Olivia Mackall |
---|---|
lançamento inicial | 19 de abril de 2005 |
Versão estável | |
Repositório | |
Escrito em | Python , C e Rust |
Sistema operacional | Semelhante a Unix , Windows , macOS |
Modelo | Controle de versão |
Licença | GPL-2.0 ou posterior |
Local na rede Internet |
www |
Mercurial é uma ferramenta de controle de revisão distribuída para desenvolvedores de software . É compatível com Microsoft Windows e sistemas semelhantes ao Unix, como FreeBSD , macOS e Linux .
Os principais objetivos de design do Mercurial incluem alto desempenho e escalabilidade, descentralização, desenvolvimento colaborativo totalmente distribuído, manuseio robusto de texto simples e arquivos binários e recursos avançados de ramificação e mesclagem, enquanto permanece conceitualmente simples. Inclui uma interface web integrada. A Mercurial também tomou medidas para facilitar a transição para usuários de outros sistemas de controle de versão, particularmente o Subversion . Mercurial é principalmente um programa baseado em linha de comando , mas extensões de interface gráfica de usuário estão disponíveis, por exemplo , TortoiseHg , e vários IDEs oferecem suporte para controle de versão com Mercurial. Todas as operações do Mercurial são invocadas como argumentos para seu programa driver hg
(uma referência a Hg - o símbolo químico do elemento mercúrio ).
Olivia Mackall originou o Mercurial e atuou como seu desenvolvedor líder até o final de 2016. O Mercurial é lançado como software livre sob a licença GPL-2.0 ou posterior . É principalmente implementada usando a linguagem de programação Python , mas inclui um binário diff implementação escrito em C .
História
A Mackall anunciou o Mercurial pela primeira vez em 19 de abril de 2005. O ímpeto para isso foi o anúncio no início daquele mês pela Bitmover de que eles estavam retirando a versão gratuita do BitKeeper por causa do desenvolvimento do SourcePuller .
O BitKeeper foi usado para os requisitos de controle de versão do projeto do kernel Linux . Mackall decidiu escrever um sistema de controle de versão distribuído como um substituto para uso com o kernel Linux. Este projeto começou alguns dias depois que o agora conhecido projeto Git foi iniciado por Linus Torvalds com objetivos semelhantes.
O projeto do kernel Linux decidiu usar Git em vez de Mercurial, mas Mercurial agora é usado por muitos outros projetos (veja abaixo ). "Git vs. Mercurial" se tornou uma das guerras sagradas da cultura hacker .
Em uma resposta na lista de discussão do Mercurial, Olivia Mackall explicou como o nome "Mercurial" foi escolhido:
Pouco antes do primeiro lançamento, li um artigo sobre o desastre contínuo do Bitkeeper que descreveu Larry McVoy como inconstante (no sentido de 'inconstante'). Dados os vários significados, a abreviação conveniente e o bom ajuste com meu esquema de nomenclatura pré-existente (veja meu endereço de e-mail), ele clicou instantaneamente. Mercurial é assim nomeado em homenagem a Larry. Não sei se o mesmo se aplica ao Git.
Projetos de alto perfil, como Java, ou seja, OpenJDK usaram Mercurial (mas não usam mais a partir do Java 16).
Projeto
O Mercurial usa hashes SHA-1 para identificar as revisões. Para acesso ao repositório por meio de uma rede, o Mercurial usa um protocolo baseado em HTTP que busca reduzir as solicitações de ida e volta, novas conexões e transferência de dados. O Mercurial também pode funcionar em SSH, onde o protocolo é muito semelhante ao protocolo baseado em HTTP. Por padrão, ele usa uma mesclagem de 3 vias antes de chamar ferramentas externas de mesclagem.
Uso
A Figura 1 mostra algumas das operações mais importantes no Mercurial e suas relações com os conceitos do Mercurial.
Adoção
Embora o Mercurial não tenha sido selecionado para gerenciar as fontes do kernel do Linux, ele foi adotado por várias organizações, incluindo Facebook , W3C e Mozilla . O Facebook está usando a linguagem de programação Rust para escrever Mononoke, um servidor Mercurial projetado especificamente para oferecer suporte a grandes repositórios de vários projetos.
Em 2013, o Facebook adotou o Mercurial e começou a trabalhar no dimensionamento para lidar com seu grande repositório de código unificado.
O Google também usa o Mercurial em seu monorepo 'Piper'.
A Bitbucket anunciou que seus serviços de controle de versão baseados na web encerrariam o suporte para Mercurial em junho de 2020 (depois estendido para julho de 2020), explicando que "menos de 1% dos novos projetos o usam, e pesquisas com desenvolvedores indicaram que 90% dos desenvolvedores usam Git " Enquanto isso, centenas de usuários questionaram abertamente o motivo da exclusão massiva de dados históricos, perguntaram por que não havia um aviso significativo nem um plano de migração formal e entraram em pânico com o tempo apressado em seu segmento de suporte oficial da empresa.
Servidores Mercurial e gerenciamento de repositório
- Heptapod , um fork do Gitlab para Mercurial da Octobus
- Kallithea , um fork GPLv3 de RhodeCode
- Forno da Fog Creek Software
- Phabricator por Phacility
- RhodeCode da RhodeCode Inc.
Hospedagem de código fonte
Os seguintes sites fornecem hospedagem gratuita de código-fonte para repositórios do Mercurial:
- Bitbucket da Atlassian (uso suspenso em fevereiro de 2020; somente leitura desde julho de 2020)
- Base de código
- FusionForge
- GNU Savannah por FSF
- Heptapod
- Mozdev
- OSDN
- Outros
- Perforce
- Puszcza (um site irmão do GNU Savannah, hospedado na Ucrânia)
- SourceForge
- sourcehut
- TuxFamily
Projetos de código aberto usando Mercurial
Alguns projetos usando o RCS distribuído do Mercurial:
Veja também
- Comparação de software de controle de versão
- Controle de versão distribuída
- Lista de software de controle de versão
Notas
Referências
links externos
- Mackall, Matt, "FLOSS Podcast" , esta semana na Tech
- O'Sullivan, Bryan (2009), Mercurial: The Definitive Guide (livro), O'Reilly, disponível gratuitamente online
- Spolsky, Joel, tutorial do Mercurial , arquivado do original em 13 de junho de 2016 , recuperado em 6 de abril de 2010
- Um tutorial baseado em exemplo do Mercurial (PDF) , SE : Jemander cobrindo o uso básico e avançado
- "Mercurial: uma alternativa ao git" , LWN
- "Subversion ou CVS, Bazaar ou Mercurial? Quatro sistemas de controle de versão de código aberto comparados" , JavaWorld , setembro de 2007
- "Mercurial", TechTalk (vídeo)
- Lista de projetos usando Mercurial do wiki Mercurial
- Website oficial