Se você já trabalhou com um grupo de pessoas em um mesmo projeto, com certeza você sabe a frustação de ficar compartilhando as alterações realizadas, muitas das vezes enviando os fontes por email, MSN ou afins, para isso foram desenvolvidos os revisions controls , version control ou simplesmente, controle de versão, acredito que a maioria dos desenvolvedores já tenham trabalhado com algum controle de versão, para os designers acredito que o conceito ainda seja meio estranho (pra estes acredito que valha o bom e velho backup).
O maior benefício de um controle de versão com certeza é a possibilidade de várias pessoas trabalharem em paralelo em um mesmo projeto sem precisar ficar enviando suas alterações para cada membro do time, desenvolvedores e designers podem se beneficiar desta excelente ferramenta para manter cópias de seus fontes, documentos, imagens e etc.
O controle de versão oferece a possibilidade de reverter alterações realizadas se alguma coisa de ruim acontecer (sabemos que essa possibilidade é muito grande), neste artigo vou falar sobre alguns dos principais controles de versão da atualidade e algumas ferramentas que fazem o uso dos controles de versão tornar-se um pouco mais fácil.
SVN
O subversion é provavelmente o controle de versão com a maior adoção no mercado, vários projetos open-source usam subversion como repositório, como exemplo podemos citar Apache, Python dentre outros, inclusive o Google Code usa o Subversion exclusivamente para distribuir código.
Por causa da popularidade do SVN existem diversos clients, disponíveis, geralmente para os usuários de windows, o TortoiseSVN é o client mais recomendado, para os usuários de Mac o Version tende a ser a melhor opção.
Git
O Git é a estrela ascendente dos controles de versão, ele foi desenvolvido pelo criador do kernel do linux e recentemente vem sendo largamente utilizado pela comunidade de desenvolvedores e startups, o Git oferece um controle de versão diferente, o Distributed Version Control, ou simplesmente, controle de versão distribuído, com esta forma de controle não existe um servidor central como no SVN por exemplo, que usa versão centralizada, a comunidade diz que o Git é o controle de versão mais rápido do mercado, dentre alguns que usam o Git podemos citar o Linux Kernel, Wine, Fedora, dentre outros, o Github se estabilizou como um grande controle de versões baseado em Git, provendo um belo front end para grandes projetos como Rails e Prototype, entretanto, o Git não é muito fácil de se aprender, sendo portanto, não muito recomendado para iniciantes no mundo de controle de versões, clients podem ser encontrados aqui.
Mercurial
O Mercurial é outro controle de versão distribuído assim como o Git, ele foi desenvolvido para projetos de grande porte, muito além dos projetos simples de designers e desenvolvedores independentes, obviamente isso não significa que times pequenos não possam utilizá-lo, o Mercurial é extremamente rápido e os criadores focaram na performance como recurso mais importante.
Além de ser muito rápido e escalável, o Mercurial é mais simples que o Git, não existem tantas funções para aprender e as funções são similares a outros CVS’s, além de ele vir equipado com uma interface web e ter uma excelente documentação.
Uma lista de clients para o Mercurial pode ser encontrada aqui e para um excelente tutorial em inglês, basta clicar aqui.
Como adicional, deixo um link de um artigo falando um pouco sobre perfomance dos controles de versão citados acima, acessem o seguinte link.
Então é isso, até um próximo post.
Qual o melhor controle de versão? SubVersion/Git/Mercurial,