Controle de versões - Parte I

Controle de versões
Este post faz parte da série Controle de versões. Leia também os outros posts da série:

Com o avanço tecnológico, muitos sistemas embarcados atuais possuem poder de processamento maior que computadores pessoais de apenas 5 anos atrás. Isso significa que a cada dia podemos e desenvolvemos mais e mais software e/ou firmware. Para quem tem alguma experiência em projetos em sistemas embarcados, por diversas razões, nota-se que na maioria deles gasta-se mais tempo desenvolvendo firmware e software do que hardware. Diante desse cenário, no intuito de manter a qualidade do software, é imprescindível o uso de uma ferramenta para controle de versões.

 

Através de uma ferramenta de controle de versões, o programador tem um maior controle sobre o código fonte. Algumas vantagens e praticidades de um sistema de controle de versão:

 

  • Guardar o histórico de alterações no código fonte;
  • Marcar pontos importantes do projeto, como release de versões;
  • Criar ramificações (branches) do código a fim de desenvolver/testar um novo algoritmo;
  • Facilitar e/ou permitir o trabalho em paralelo em uma equipe;
  • Retornar o código num estado anteriormente salvo, etc.

 

Existem dois principais tipos de sistemas de controle: sistemas de controle centralizado e sistemas de controle distribuído.

 

1) Sistemas de controle centralizado (VCS - Version Control System)

 

Basicamente esse tipo de sistema segue o padrão cliente-servidor. O repositório fica localizado no servidor e todo o código fonte e metadados para controle de versão (informações necessárias para salvar o status, commits, usuários, etc) são salvos nele. Todos clientes devem ler e escrever no servidor.

 

2) Sistemas de controle distribuído (DVCS - Distributed Version Control System)

 

Em sistemas distribuídos, todo o código fonte e metadados para o controle de versão são salvos localmente e por isso não existe um repositório único, mas tantos quanto o número de usuários que o compartilhem. Porém na prática, um repositório é escolhido para ser o "repositório oficial" para que todos possam contribuir num mesmo código.

 

No próximo post abordaremos um pouco mais sobre sistemas de controle centralizado, softwares que usam essa arquitetura, vantagens e desvantagens desse modelo.

 

E você caro leitor, tem usado em seus projetos algum tipo de sistema de controle de versões?

 

Referências:

 

http://en.wikipedia.org/wiki/Distributed_revision_control

http://en.wikipedia.org/wiki/Concurrent_Versions_System

http://www.ericsink.com/vcbe/

 

 

Outros artigos da série

Controle de versões Parte II - CVS/SVN >>
Este post faz da série Controle de versões. Leia também os outros posts da série:

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Marcelo Jo
Engenheiro eletrônico com 10 anos de experiência em sistemas embarcados, pós graduado em redes de computadores e atualmente cursando mestrado em sistemas de visão por computador na universidade Laval no Canadá. Compartilha seu conhecimento neste portal quando tem tempo livre e quando não está curtindo a vida com sua mulher e os 3 filhos.

Deixe um comentário

avatar
 
  Notificações  
Notificar