
O uso de uma ferramenta de controle de versões é indispensável para desenvolvedores de software. Apesar de me considerar um early adopter, quando o tema é gerenciamento de configuração sempre fui conservador. Tanto que, em mais de 15 anos, praticamente só usei três ferramentas: o cru SourceSafe (pré-Team Foundation Server), o honesto CVS e o robusto Subversion, cronologicamente nessa ordem. Entendo que o sistema responsável pelo gerenciamento do código fonte deve ser transparente, seguro e estável, portanto não é desejável (nem produtivo) experimentar inovações desnecessárias. O Subversion foi um fiel escudeiro em incontáveis projetos e iniciativas, contudo acho que é hora de admitir que ele ficou obsoleto! Por favor, não me leia mal, continuo achando o Subversion um Senhor Software (com Ss maiúsculos!), porém vejo que ele está inexoravelmente preso a um paradigma tão ultrapassado quanto a calça boca-de-sino: o controle centralizado.
Centralizado versus Distribuído
Acredito que os adjetivos que guardo para o Subversion são suficientes para demonstrar meu o tamanho do meu apreço. Porém, a ideia de manter um único repositório central, na minha humilde opinião, torna-se cada dia menos racional. A abordagem dos sistemas distribuídos descontrói o modelo client-server e promove o peer-to-peer, ou seja, ao invés de um exclusivo repositório no servidor, cada cliente tem o seu próprio.

Eis cinco excelentes vantagens que os sistemas distribuídos de controle de versões oferecem sobre os jurássicos tradicionais sistemas centralizados:
- Produtividade – as operações de gerenciamento do código fonte podem ser realizadas mesmo quando não há conectividade de rede;
- Velocidade – as operações são significativamente mais rápidas, pois não há tráfego de rede;
- Gerenciabilidade – os usuários podem utilizar os recursos de controle do código fonte ainda durante os primórdios do projeto, sem a necessidade de publicá-lo.
- Confiabilidade – não há ponto único de falha, desde que o modelo é naturalmente redundante;
- Versatilidade – é muito mais fácil criar novos projetos baseados em repositórios já existentes (fork).
Considerando todas as vantagens que o modelo distribuído oferece, encontro dificuldades em justificar a razão de não adotá-lo antes. Só consigo pensar em uma explicação: preguiça falta de tempo! 
Git: minha preferência
O cenário de sistemas distribuídos de versionamento é animador: produtos maduros e comunidades ativas. Entre os softwares gratuitos que merecem destaque estão o Git, o Mercurial e o Bazaar. Desses eu escolhi o Git, mas confesso que a decisão foi mais subjetiva mercadológica do que técnica, porque não vejo diferenças funcionais relevantes entre eles.

Então o que torna o Git bacana?
- Paternidade – foi criado por Linus Torvalds, portanto é o irmão caçula do Linux;

- Aceitabilidade – existem vários bons serviços para hospedagem de repositórios na nuvem: GitHub (lógico!), Gitorious (óbvio!), CodePlex e Google Code;
- Popularidade - entre os sistemas distribuídos, é o mais utilizado pela comunidade de software livre, conforme levantamento do Ohloh.
Examinando as razões enumeradas neste artigo, acho que é chegada a hora de dizer, sem sentimentalismo, ao Subversion: “Obrigado, velho companheiro, mas seus serviços não são mais necessários”.
12/11/2012 | Opinião, Tecnologia
Sem comentários »