CVS – Gerenciamento de
Versões
Priscila T. L. Rossato
O que é o CVS?






CVS é um sistema de controle de versões
(Concurrent Versions System).
Com CVS você pode gerenciar diferentes versões
de um programa (ou projeto).
Pode atualizar, adicionar e eliminar arquivos e
diretórios ao programa.
Pode criar ramificações de um projeto.
Múltiplos programadores podem trabalhar ao
mesmo tempo no mesmo projeto.
http://www.cvshome.org/
Descrição Básica

Repositório (Servidor CVS)
–
–
–
–

é o repositório central:
é uma árvore de arquivos e diretórios que corresponde à
última versão de cada um dos arquivos-fonte do projeto e
armazena também todo o histórico de modificações
realizadas
adicionalmente, contém arquivos criados pelo programa cvs
para o gerenciamento das versões.
acesso nunca é direto, mas através de ferramentas do
pacote CVS
Módulos: nomes definidos pelo usuário para
subconjuntos da árvore de diretórios do repositório
Descrição Básica

Cópia de Trabalho (Cliente CVS):
–
–
–
–
cada usuário trabalha em sua própria cópia dos arquivos e
diretórios de um repositório, utilizada no desenvolvimento
usuários trabalham concorrentemente: nada é “travado”
(lock files) ou “reservado” ;
Cada usuário pode criar sua própria cópia dos arquivos a
qualquer momento - normalmente pega-se as últimas
versões;
versões anteriores também podem ser obtidas facilmente;
Conceitos Básicos

Versão:
–
–
Todo arquivo tem uma versão que é automaticamente
definida pelo cvs.
De uma maneira geral a versão do arquivo é redefinida a
cada alteração do arquivo que foi gravada no repositório.
Conceitos Básicos

Tag:
–
–
É um nome simbólico
dado a uma determinada
versão do projeto, pode
ser usado para delimitar
etapas do
desenvolvimento de um
projeto.
É possivel reverter o
projeto para uma versão
anterior através da tag.
Conceitos Básicos

Release:
É uma versão definitiva de todos os arquivos do projeto.
– A diferença entre o tag e o release, é que o tag não modifica a
versão dos arquivos do projeto. O release modifica a versão
de todos os arquivos, dando a todos os arquivos um mesmo
número de versão.
– Depois de definido
o release o mesmo não
pode ser modificado.
–
Conceitos Básicos

Brach:
–
–
Um branch (ramo) é usado para dividir um projeto.
Normalmente existe o ramo mestre e os ramos secundários.
É possivel fundir dois branches (merge) de maneira
automática
Principais Comandos





checkout: obter uma cópia de um módulo para a
área de trabalho local
commit: enviar as alterações da cópia local para o
repositório
update: atualizar a cópia local com eventuais
mudanças do repositório
add/remove: adicionar e remover arquivos de um
módulo
diff: compara diferentes versões dos arquivos
Diagrama de Operação
TortoiseCVC



TortoiseCVS é uma interface gráfica de um
Cliente CVS.
Fácil e intuitiva
Permite que os desenvolvedores controle os
arquivos do CVS diretamente pelo Windows
Explorer
Entendendo os ícones
Checkout - Obter um módulo
Commit – CVS Gravar



Novo Arquivo: Primeiro tem que Adicionar o
arquivo e depois Gravar
Alterar Arquivo Existente: Apenas Gravar o
arquivo
Excluir Arquivo: Deve Remover o arquivo e
depois Gravar a remoção
Update – CVS Atualizar
Quando dois ou mais
desenvolvedores modificam o
mesmo arquivo-fonte, o CVS irá
automaticamente fundir as
modificações durante o commit
 Entretanto, se dois (ou mais)
desenvolvedores modificam a
mesma linha, o CVS registra um
conflito e aceita apenas o primeiro
commit realizado

Conflitos

O CVS deixará indicações do conflito na sua cópia de trabalho,
os arquivos em conflito contém marcações na forma:
<<<<< <nome do arquivo>
[versão local do código]
=====
[versão do repositório]
>>>>> <número da versão no repositório>



Essas marcações deixam o código "incompilável“
Por garantia, o CVS faz uma cópia da versão local antes de
colocar as marcações (pe. .#usanConst.pas.1.41)
O conflito deve ser resolvido manualmente pelo desenvolvedor,
onde ele deve escolher qual é o código correto
Utilitários

Diferenças: mostra visualmente a diferença entre dois
arquivos.
Utilitários

Histórico: é o histórico de todas as alterações do
arquivo (data, autor e comentário).
Utilitários

Anotações: é possível
ver quem alterou cada
linha do arquivo e em
qual versão.
Alteração Manual do Repositório
(Linux)

Em algumas situações é preferível alterar
manualmente o repositório, ao invés de
utilizar os comandos add e remove:
–
–
–
para mover diretórios e preservar seu conteúdo
inalterado
para mover arquivos e manter seu histórico
para remover arquivos e diretórios
definitivamente do CVS, inclusive seus históricos
Atenção !!!



SEMPRE LEMBRE DE COLOCAR O
COMENTÁRIO AO GRAVAR O ARQUIVO
Todos os Forms devem ser gravados em
forma de Texto, para isso sempre selecione
a opção “Text DFM”
Sempre lembre de adicionar as novas
classes ao projeto 
Referências

Uso do CVS com Eclipse –
–

http://hotwork.sourceforge.net/hotwork/manual/ecl
ipse/eclipse-userguide.html#CONTROLE_DE_VERS%C3O
Uso do CVS com Tortoise –
–
http://www.tortoisecvs.org/
Download

CVS