Mercurial - Mercurial

Mercurial
Mercurial sem fronteira logo.svg
Desenvolvedor (s) Olivia Mackall
lançamento inicial 19 de abril de 2005 ; 16 anos atrás ( 19/04/2005 )
Versão estável
5.9.2  Edite isso no Wikidata / 28 de setembro de 2021 ; 18 dias atrás ( 28 de setembro de 2021 )
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-scm .org Edite isso no Wikidata

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.

Figura 1: Algumas operações importantes do Mercurial e suas relações.

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

Hospedagem de código fonte

Os seguintes sites fornecem hospedagem gratuita de código-fonte para repositórios do Mercurial:

Projetos de código aberto usando Mercurial

Alguns projetos usando o RCS distribuído do Mercurial:

Veja também

Notas

Referências

links externos