Controle de versões Parte II - CVS/SVN

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

Os primeiros sistemas de controle de versões modernos possuíam arquitetura cliente-servidor e eram, portanto, centralizados. Isso significa que existe um repositório central onde o código fonte fica salvo. Cada desenvolvedor baixa uma cópia, edita e, quando necessário, envia novamente ao servidor.

 

O CVS - Concurrent Version System (Sistema de Versões Concorrentes) é um dos sistemas mais conhecidos dessa categoria. Como seu nome diz, é um sistema concorrente onde várias pessoas podem editar o mesmo código ao mesmo tempo, uma vez que cada desenvolvedor faz uma cópia local.

 

Outro sistema muito conhecido é o SVN - Apache Subversion, que foi especialmente desenvolvido para ser um substituto compatível do CVS. 

 

Os commandos básicos para o uso desse sistema são:

  • Checkout - Faz uma cópia local do projeto remoto;
  • Commit - Envia alterações local ao projeto remoto;
  • Update - Faz uma leitura do projeto remoto e atualiza a cópia local.

 

Num repositório padrão SVN, você encontrará três diretórios:

  • trunk - É a ramificação principal. Normalmente ele é usado como a linha principal de desenvolvimento do projeto;
  • tags - Para cada release de testes, release para o cliente ou por algum motivo que haja a necessidade de se marcar uma versão, cria-se uma tag que é salvo nesse diretório;
  • branches - Para cada ramo adicional que o desenvolvedor tenha necessidade de criar, salva-se nesse diretório.

 

Normalmente usa-se o SVN com a interface gráfica Tortoise SVN, o que facilita bastante no seu uso no dia-a-dia. Com o SVN/Tortoise é possível facilmente ver o log de alterações nos arquivos, as ramificações, controlar as versões, criar branches, fazer commits, etc. 

 

RevisionGraph

http://tortoisesvn.net/screenshots.html

 

Basicamente as vantagens desse sistema são:

  • Gratuito
  • Fácil de entender
  • Fácil de instalar e usar
  • Interface gráfica simples e intuitivo (com Tortoise SVN)

 

E as desvantagens são:

  • Dependente do servidor. Em caso de pane no servidor é impossível fazer um update ou commit
  • A cada commit é necessário se conectar ao servidor o que torna o sistema lento
  • Caso um arquivo seja renomeado seu histórico de alterações é perdido
  • Difícil de se usar com grandes equipes ou equipes remotas

 

No próximo post será abordado sobre DCVS - Distributed Concurrent Version System (Sistemas de Controle de Versões Distribuídos), que é uma nova geração de sistema de controle de versões. 

 

E você leitor que usa SVN/Tortoise, como você tem usado essa ferramenta em seu trabalho? Tem alguma dica ou sugestão para melhorar ou facilitar o seu uso?

 

Referências

 

http://pt.wikipedia.org/wiki/CVS

http://pt.wikipedia.org/wiki/Subversion

http://svnbook.red-bean.com/en/1.7/index.html

http://tortoisesvn.net/downloads.html

 

Outros artigos da série

<< Controle de versões - Parte IControle de versões Parte III – DVCS >>
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.

1
Deixe um comentário

avatar
 
1 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
0 Comment authors
Embarcados – Sua fonte de informações sobre Sistemas Embarcados Controle de versões Parte III – DVCS » Embarcados - Sua fonte de informações sobre Sistemas Embarcados Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
trackback

[...] último post foi discutido sobre os primeiros sistemas de controle de versões (CVS) que possuíam uma [...]