Site icon Embarcados – Sua fonte de informações sobre Sistemas Embarcados

Controle de versões Parte III – DVCS

DVCS

No último post foi discutido sobre os primeiros sistemas de controle de versões (CVS) que possuíam uma arquitetura cliente-servidor, suas vantagens e desvantagens. Essa tecnologia vem aos poucos sendo substituída por uma nova geração de sistemas de controle de versões, chamada de DVCS – Distributed Version Control System, em tradução livre, sistemas de controle de versão distribuídos.

Segundo Andrew Tanenbaum, um sistema distribuído se define como uma coleção de computadores independentes que se apresenta ao usuário como um sistema único e consistente. Em outras palavras, em um sistema distribuído não existe a definição de um computador central que atua como servidor. Todos os computadores são, ao mesmo tempo, cliente e servidor.

Existem vários sistemas DVCS e os dois projetos de código aberto mais conhecidos são Mercurial e Git, sendo este último mais popular por ter sido desenvolvido por Linus Torvalds, o qual será detalhado neste post.

As principais vantagens são:

As principais desvantagens são:

No dia a dia isso se resume a um maior esforço para dominar a ferramenta, mas, em contrapartida, o sistema oferece uma maior flexibilidade e versatilidade. Um sistema DVCS permite cada desenvolvedor ter uma cópia local de todo o histórico dos arquivos, acarretando em uma maior autonomia para o desenvolvedor. Isso é necessário principalmente em equipes que trabalham no código em paralelo. Uma vez que cada usuário tem uma cópia local, este pode desenvolver normalmente e salvar todas as modificações mesmo não estando conectado em rede, sendo necessário apenas no momento de enviar as alterações.

Os comandos básicos são:

Como mencionado, o git é uma ferramenta muito versátil e possibilita diversas maneiras de como organizar o versionamento e a ramificação de um projeto. Neste post (em inglês), o autor sugere uma forma muito eficaz de como usar o git, conhecido como git flow.

Este post mostra onde hospedar o código fonte com as características de cada um. Também existe a possibilidade de hospedar todo o código internamente no servidor da própria empresa. Algumas soluções free são Gitolite, Gitorious e Gitblit. Já pago existe o Stash que oferece o Source Tree como ferramenta gráfica para facilitar o trabalho do dia a dia. Para quem vem do SVN, existe o Git tortoise que é gratuito.

E você, usa ou já usou algum sistema de controle distribuído? O que achou? E o leitor que nunca usou, qual o motivo?

Referências:

http://git-scm.com/book/pt-br
https://code.google.com/p/tortoisegit/

 Imagem: http://www.appfusions.com/