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.

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.

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 [...]