Software de controle de versão sem um servidor

Você está procurando um software de controle de versão, ou de código-fonte, que não precise de um servidor? Um software de controle de versão que rode no Windows, Linux ou MacOS?

Provavelmente você está procurando um sistema de controle de versão distribuído. Atualmente eu estou usando um chamado Bazaar.

Desde que o Linus Torvalds deixou de usar o BitKeeper e criou o Git, que os sistemas de controle de versão começaram a adotar a característica de descentralizar a localização do repositório.

É claro que já existiam outros antes disso, o próprio BitKeeper, mas dá uma olhada na adoção destas ferramentas por empresas, no Brasil, e projetos open-source. O_o

O fato de descentralizar o repositório muda a forma como você trabalha com Gerência de Código-Fonte, SCM em inglês:

  • O desempenho é maior, uma vez que todas as operações são realizadas localmente. Sem depender da rede;
  • O backup do repositório é feito naturalmente, uma vez que cada desenvolvedor representa um backup remoto dos fontes;
  • Não depende de configuração, ou mesmo existência de um servidor. Sabe a arquitetura P2P? Pois é, essa é a idéia;
  • Não precisa dar permissão, para realizar o commit, a nenhum dos desenvolvedores do projeto. Basta que uma pessoa ou grupo tenha essa permissão. E, mesmo assim os colaboradores poderão controlar as alteração que ele vem fazendo;
  • Dada a característica de que tudo é um branch, os sistemas de controle de versão distribuídos possuem um suporte a merges, muito superior aos seus concorrentes centralizados;
  • Quem resolve os conflitos gerados por mudanças no código é a pessoa que fez as mudanças e não você, quem está baixando as atualizações.
  • Você pode dar mais commits, sem quebrar o código de outro desenvolvedor, e se beneficiar mais da funcionalidade de revert.

Isso são características destas ferramentas, mas não necessariamente vantagens, ou desvantagens, apenas características.

Por exemplo, ter vários backups remotos dificulta saber qual o mais recente. Esse controle passa a ser feito pelo processo adotado pela equipe. Mas por outro lado, dificulta termos backups corrompidos, afinal de contas eles estão sendo usados.

O paper de Ian Clatworthy, desenvolvedor do Bazaar, sobre sistemas de controle de versão distribuídos procura demonstrar as vantagens de se adotar este modelo e dá sugestões sobre como escolher uma ferramenta, dentre as opções existentes. Há também, uma explicação sobre DVCS no site BetterExplained, versão ilustrada.

Eu estou testando, em um projeto no trabalho, o Bazaar-VCS. Ferramenta apoiada pela Canonical – já ouviu falar na empresa sim. É a mesma que mantem o Ubuntu Linux e o emprego do Ian, o cara do paper ali de cima.

Também darei uma olhada no Mercurial que vejo como principal concorrente dele. Uma vez que suas características são semelhantes.
Minha escolha, para teste do Bazaar, foi feita pensando em seu suporte a renomear e mover arquivos e pastas.

Críticas, dúvidas e sugestões serão muito bem vindas. Para isso é só comentar aqui embaixo…

2 opiniões sobre “Software de controle de versão sem um servidor

  1. Pingback: Tutorial do Bazaar « Beyond Click

Deixar mensagem para rocker Cancelar resposta