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.
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.
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:
E este, para quem não conhecia, é o Mercurial. Qualquer dúvida, pode deixar nos comentários. Até a próxima!
É 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
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
Postar um comentário