Carlson, um dos leitores do meu blog, gostaria de saber qual sistema de controle de versão estou usando e qual a minha opinião entre Subversion e JediVCS.

Minha primeira experiência com controle de versão foi com o FreeVCS, aplicativo que deu origem ao atual JediVCS. Eles são desenvolvidos em Delphi e eu inclusive cheguei a contribuir com algumas correçoes de bugs enquanto era usuário. Nesta época, existiam apenas 2 desenvolvedores investindo parte de seu tempo livre no desenvolvimento da ferramenta, que na época tinha muitos bugs e poucos interessados em ajudar.

O FreeVCS foi um divisor de águas pra mim. Até então eu não tinha nenhum controle de versão, era tudo muito amador, para não dizer precário. Felizmente isso foi há muitos anos atrás.

O FreeVCS atendeu muito bem durante muito tempo até que começou a incomodar. Era chato para configurar o servidor como serviço, não suportava Firebird 1.5 (me obrigava a manter o 1.0 instalado no servidor paralelamente ao 1.5), tinha alguns bugs graves e principalmente, muitas limitações, como não suportar branches, algo absolutamente obrigatório para qualquer VCS hoje em dia.

Quando participei de um curso de SCM um dos companheiros de curso comentou sobre um tal de Subversion, que ainda estava em versão beta mas que ele estava testando e gostando muito. Ele disse que resolvia vários problemas do famoso CVS, que eu nunca tinha usado, mas sabia ser o mais usado no mundo.

Resolvi conhecer a ferramenta. Baixei ele junto com o TortoiseSVN, que o integra totalmente ao shell do Windows, estudei o livro online “Controle de Versão com Subversion” (que há pouco tempo começou a ser traduzido para português) e percebi que ele era realmente muito mais poderoso que o FreeVCS.

Uma coisa incomodava, ele parecia ser ainda mais chato de instalar e manter do que o FreeVCS. Então resolvi esse problema terceirizando. Contratei um servidor Subversion fora da empresa, hospedado na Internet, com links muito rápidos, servidores redundantes, backups automatizados e garantia de 99,99% de uptime. Acha que custa caro? Eu pago US$20 por mês. Foi a melhor coisa que eu poderia ter feito.

Meu host de Subversion ainda oferece integração com o Trac, um sistema de gerenciamento de configuração de software com Wiki, BugTracking e algumas visualizações fantásticas como TimeLine, que mostra um histórico do que está acontecendo no código, ou o ChangeSet, que permite revisão de cada commit, mostrando exatamente o que foi alterado. Uso isso todo dia para revisar o código comitado pelos outros desenvolvedores.

Resumindo, quando saí do FreeVCS foi uma evolução imensa. Certamente nunca voltarei para ele e não o recomendo para ninguém. Sei que existem muitos desenvolvedores usando com sucesso, mas provavelmente é porque nunca usaram o Subversion. Também não sei em que situação está o JediVCS hoje, mas me parece que evoluiu muito pouco pois acredito que ainda dependa de tempo livre de poucos voluntários. Já estou usando o Subversion há uns 2 anos, e muito antes disso o JediVCS já estava migrando o FreeVCS e me parece que isso terminou apenas esse ano.

Já o Subversion, está se tornando o padrão em controle de versão pelo mundo. A grande maioria que usa controle de versão free/open source, usa Subversion. Inclusive o SourceForge já está oferecendo Subversion para todos os projetos que antes usavam apenas o CVS. Sei também que o Subversion tem alguns desenvolvedores em tempo integral, remunerados apenas para desenvolvimento do produto. Ele também roda em servidores Linux, ao contrário do JediVCS, que deve ser apenas Windows.

Enfim, o Subversion, na minha opinião, é a melhor opção sem sombra de dúvida.