Como já explicado, o Bazaar é um sistema de controle de versão distribuído, que eu estou usando em um projeto no trabalho. Neste texto irei listar os motivos para usá-lo e uma breve comparação com os seus concorrentes mais interessante: Mercurial e Git.
Por que usar o Bazaar?
- Possui suporte a renomear e mover arquivos e pastas;
- Possui suporte a migração de repositórios Subversion;
- É multi-plataforma, incluindo Windows e Linux. Na verdade qualquer coisa que rode Python;
- É suportado por uma empresa, Canonical, que mantém programadores dedicados ao projeto;
- Possui suporte comercial, opcional;
- É usado em projetos grandes;
- É livre e gratuito;
Problemas que me incomodam
- É, visivelmente, mais lento do que os concorrentes: Mercurial e Git;
- Falta um cliente que não seja em linha de comando que esteja no mesmo nivel do TortoiseCVS ou SmartCVS. O TortoiseBzr está sendo distribuído com a versão 1.6. Eu concordo que não doí usar a interface por linha de comando, mas tem desenvolvedor que esta acostumado com o Windows. E nada o convence de que há casos em que linha de comando é mais produtivo;
- O plugin do Bazaar para o Eclipse ainda deixa a desejar, se comparado, por exemplo, ao Subversive para o Subversion;
- O TortoiseBzr ainda está no começo, mas parece promissor.
As funcionalidade que sinto falta no plugin para o Eclipse são:
- Diff visual para o arquivo modificado;
- Selecionar a versão o arquivo, para a qual eu desejo reverter as alterações;
- View com os arquivos alterados, de forma que eu possa selecionar o que vai ser “commitado”.
- Assistente visual para merge.
Fontes de consulta
- Texto sobre as principais características dos sistemas de controle de versão distribuidos
- Avaliação do Bazaar, feita pela equipe do OpenSolaris;
- JavaWorld sobre qual VCS escolher
- Importancia da distribuição nos VCSs. Neste blog também tem outros textos interessantes sobre o assunto.
Concorrentes
Git
Criado por Linus Torvalds para substituir o BitKeeper, usando as lições aprendidas com o uso diário deste. O Git é usado para suportar o processo de desenvolvimento do kernel Linux.
Suas principais características são:
- Suporta os requisitos de Linus Torvalds, para o Linux.
- É, absurdamente, rápido;
- Possui desenvolvedores de altíssimo nível;
- É muito rápido, mesmo;
- Suporta renomear e mover arquivos e pastas;
- Tem uma ferramenta de merge muito boa. Ele inclusive consegue, sob certas circunstâncias, acompanhar que um método saiu de um arquivo para outro.
- Já falei que ele é rápido?
Infelizmente nem tudo são flores…
- Ele não tem um suporte decente para Windows. Mesmo assim tem um projeto no Google Code, Git on MSys, que parece interessante se for levado adiante.
Mercurial – Hg
O pessoal da Mozilla e do OpenSolaris gostou dele.
É muito rápido, se comparado com o Bazaar.
Ele tem recebido boas criticas. Inclusive, o pessoal da Mozilla o comparou com o Bazaar, mas com uma versão beeem antiga:
- Avaliação do Mercurial, feita pela equipe do OpenSolaris;
- Comparação entre VCSs feita pela equipe Mozilla;
- Bazaar needs to step it up, Look at Mercurial.
Além disso, já possui uma boa ferramenta: TortoiseHg.
Ainda assim, sinto falta de “alguém de peso” suportando o desenvolvimento. Quando eu digo suportando, eu me refiro a forma que a Canonical está fazendo com o Bazaar.
Na verdade, esta falta, é apenas porque acredito que o Hg poderá ser superado pelo Bazaar, da mesma forma que o Ubuntu vem fazendo com as distribuições mais antigas.
Críticas, dúvidas e sugestões serão muito bem vindas. Para isso é só comentar aqui embaixo…