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 >>
Website | Veja + conteúdo

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.

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

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

Comentários:
Notificações
Notificar
guest
1 Comentário
recentes
antigos mais votados
Inline Feedbacks
View all comments
trackback
12/05/2014 00:01

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

Talvez você goste:

Séries



Outros da Série

Menu