Uma introdução ao Mercurial

Não muito conhecido pelo público em geral, o Mercurial é um sistema de controle de versão de código aberto utilizado por grandes empresas como Google e Facebook. Desenvolvido nas linguagens Python e C, sob liderança de Matt Mackall, o sistema foi lançado oficialmente em 19 de abril de 2005.

É uma ferramenta extremamente simples mas muito eficiente, que consegue desempenhar com velocidade e facilidade, as principais funções de um CVS. Além disso, o Mercurial é um sistema distribuído, ou seja, a equipe de desenvolvimento não precisa estar no mesmo local para desenvolver um projeto.

Figura 1: Logo do Mercurial

Para alcançar esta descentralização, o Mercurial implementa repositórios locais que contêm todo o histórico dos dados que ele versiona. Para quem está acostumado com o modus-operandi do Subversion, seria como se cada checkout se tornasse um repositório local contendo histórico de todas as transações anteriores e permitindo ao usuário a realização de commits e reverts, por exemplo, localmente, sendo que este novo histórico de transações pode ser integrado ao repositório original a qualquer momento.

Os objetivos principais no desenvolvimento do Mercurial incluem alta performance e escalabilidade, descentralização, desenvolvimento colaborativo distribuído, controle de arquivos textuais e binários de forma robusta, e operações avançadas de ramos (branches) e mesclagem (merges). A ferramenta também inclui de forma integrada um sistema de visualização dos repositórios via web e facilitação na transição de usuários do Subversion.

Vantagens

Mercurial foi inicialmente escrito para rodar sobre Linux, mas foi portado para Windows, Mac OS X, e a maioria dos outros sistemas UNIX. Essa grande compatibilidade permitiu o desenvolvimento de grandes diferenciais na ferramenta.

Algumas vantagens são:
  • Multiplataforma (Linux, BSD, Mac, Windows);
  • Integração com outras ferramentas via plugins(Git, NetBeans, Emacs, etc);
  • Abreviação de comandos intuitiva e automática;
  • Fácil migração do git;
  • Diversas forges disponíveis;
  • Interface nativa para interação e visualização dos commits.

Desvantagens

Essa ferramenta não apresenta muitas desvantagens apontadas por críticos. Ela é um pouco mais complexa de ser utilizada em comparação com o Subversion, porém, ainda é de aprendizagem fácil e rápida pelas equipes de desenvolvedores e possui medidas de segurança para impedir erros.

Algumas das poucas desvantagens são:

  • No geral, é mais lento que o Git;
  • Não é recomendável para certos perfis de projetos;
  • Comunidade menos expressiva, já que o número de repositórios que utilizam Mercurial é menor em relação aos outros controles de versão.

Curiosidade

O Facebook migrou de controle de versão do Git para o Mercurial em 2013. Os principais motivos foram que o Git tinha maior dificuldade em escalabilidade, já o Mercurial, por ser escrito em Python, possui mais facilidade de ser estendido e lidar com a absurda quantidade de dados e linhas de código geradas pela rede social diariamente. 

Essa colaboração vinda do Facebook gerou um bom update no Mercurial, que ganhou novas funcionalidades e melhorias em algoritmos, código fonte, e até novas extensões. 

Conclusão

Com o passar dos anos, o Mercurial foi ganhando mais notoriedade e desempenho. As melhorias trazidas tanto pelo Facebook quanto por outras gigantes como Google e Mozilla elevaram a ferramenta a um nível de comparação com outras gigantes da área de controle de versões. Hoje em dia, o Mercurial é uma alternativa à altura do Git e de outros sistemas.

E este, para quem não conhecia, é o Mercurial. Qualquer dúvida, pode deixar nos comentários. Até a próxima!

Referências

https://pt.wikiversity.org/wiki/Mercurial;
https://blog.pronus.io/posts/por-que-o-facebook-escolheu-o-mercurial-e-nao-o-git/;
https://pt.wikipedia.org/wiki/Mercurial.

Comentários

Postagens mais visitadas