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.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

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