Concurrent Versions System
(CVS)
Alexandre Monteiro
O que é CVS?





Ferramenta de apoio ao
gerenciamento de versões;
Aplicação cliente – servidor;
Controla as versões através de
tags;
Permite visualização de diferenças
entre as versões;
Permite merging entre versões
conflituosas;
Vantagens





Integração com ferramentas de
desenvolvimento;
Projeto Open Source (GNU);
Permite o rastreamento das atividades
(histórico, usuários ativos);
Armazenamento inteligente de arquivos;
Múltiplas linhas de desenvolvimento em
um repositório;
O que não é?



Mecanismo para backup
Ferramenta para a construção de builds
Substituto para comunicação entre
desenvolvedores


Conflitos não são resolvidos automaticamente
Ferramenta de solicitação de mudanças

Não controla requisições de mudança
Arquitetura Cliente-Servidor

No servidor




Repositório central
Armazena histórico de arquivos
Armazena arquivos de controle
No Cliente


Área de trabalho (Workspace)
Armazena uma cópia dos arquivos do
repositório
WinCVS


Interface gráfica que permite
acesso ao repositório central
Permite também o uso de um
repositório local

Bom para projetos com um único
desenvolvedor rodando Windows ou
MacOS
WinCVS – Tela Principal
file view
módulos
status view
Usando WinCVS

Abrir GNU > WinCVS 1.2


Admin > Preferences...



(ou www.wincvs.org)
CVSROOT :pserver:{login}@cvs.cin.ufpe.br:/data/if7191
055
Authentication – “passwd” file on the cvs
server
Admin > Login...

Colocar a senha...
Usando WinCVS




Import Module... – Carrega um novo
módulo ao repositório;
Add... – Adiciona um novo arquivo à um
módulo do repositório;
Check Out Module... – Carrega um
módulo do repositório para o workspace
local;
Update Selection... – Carrega a nova
versão do arquivo (ou diretório)
selecionado do repositório para o
workspace local (se houver mudanças não
salvas haverá conflitos);
Usando WinCVS




Commit Selection... – Salva a versão local
como uma nova versão no repositório;
Create a Tag by Module... – Facilita o
check out a partir de Tags;
Create a Branch by Module... – Cria uma
nova linha de desenvolvimento;
Release Selection – Retira o arquivo ou
diretório selecionado do controle do cvs;
CVS Repository Exploring



Plug-in do eclipse que permite
acesso a um repositório CVS;
Facilidade de uso (integração);
Ótimas ferramentas de diff e
merging;
Código
Módulos e Arquivos
Eclipse – Tela Principal
Histórico e Tags
Adicionando um Repositório

Window > Open Perspective >
Other...


CVS Repository Explorer;
Add CVS Repository




Host – cvs.cin.ufpe.br;
Repository Path - /data/if7191055;
User – {login};
Connection type - pserver;

Use Default Port;
Fluxo Ideal de Trabalho

Comece sem nada.




Selecione um projeto no branch (ou HEAD) e selecione
Checkout (ou Replace with > Latest from Repository
se o projeto já existe localmente);
Isso irá apagar qualquer cópia local antiga;
Faça as mudanças. Trabalhe localmente com o projeto,
salvando as mudanças apenas na sua máquina;
Sincronize. Quando você estiver pronto, sincronize:




Update;
Examine as mudanças, faça as alterações necessárias;
Rode os Testes;
Commit;

Por prudência, repita os passos acima para garantir que não
houve mudanças novamente;
Download

Aula 10 - CVS2