View
1.433
Download
0
Category
Preview:
Citation preview
PowerPoint Presentation
CVS Concurrent Versions System
Ricardo Bnffy
ricardo.banffy@autonomic.com.br
Noes Gerais
Um ambiente de produo CVS composto de duas partes principais: um repositrio e pelo menos uma rvore de trabalho
Repositrio
O repositrio onde ficam os dados das mltiplas verses e da histria dos vrios arquivos
Ele guarda apenas as diferenas entre as verses (exceto arquivos binrios)
Se for fazer back-up de algo, que seja dele
So s arquivos
rvore de Trabalho
o lugar em que os programadores trabalham
Cada programador tem a sua
Locking otimista permite mais de uma pessoa trabalhando no mesmo arquivo e resolve os conflitos depois
Precisa receber updates do repositrio para que o programador no trabalhe sobre verses velhas (o que no to problema assim)
Como isso funciona?
Algum cria um repositrio
Algum cria um mdulo
Algum coloca arquivos dentro do mdulo
Algum baixa os arquivos atuais para sua rea de trabalho
Algum sobe arquivos mudados para a rea de trabalho (cliente CVS sabe quais foram)
Por que controlar verses
Saber sempre o que mudou e o que quebrou
Desfazer os erros
Desfazer os erros dos outros
Desfazer os erros da semana passada
Quem fez o que?
Centralizar equipes distribudas
Por que CVS?
Software Livre
Multi-Plataforma
Lder de Mercado
Ampla escolha de ferramentas
Vendor-neutral
Extremamente maduro
Acesso remoto simples
O que o CVS no faz
Ele no organiza o seu trabalho
Ele no substitui comunicao entre desenvolvedores
Ele no substitui um gerente de projeto
Ele s um software
Ele no lida muito bem com coisas que mudam de nome ou de lugar
Ampla escolha de front-ends
Command-line: para os bravos, ou para as coisas realmente cabeludas igual em quase qualquer plataforma
WinCVS: Todos os sinos e apitos
MacCvsX: Todos os sinos e apitos, em Mac
gCVS: Para GTK+
Plug-in para Visual Studio (ainda em pre-release)
Tortoise CVS: Integrao total com o Windows Explorer eu gosto desse
Suporte embutido em seu IDE favorito
Mo na massa com o Tortoise CVS
Integrado ao Windows Explorer
Muito, muito fcil de usar (desde que se tenha alguma noo de como o CVS funciona)
Software Livre
Leve (roda em PCs com menos memria que alguns PDAs)
Criando um repositrio
APENAS PARA ADMINISTRADORES!!!
Crie uma pasta em um servidor. Dentro dela crie outra pasta chamada CVSROOT
Criando um mdulo
Selecione a pasta de trabalho e, no menu de contexto, escolha CVS>Make New Module
Na pasta que contm os arquivos escolha CVS Add Contents
Entre na pasta e observe os cones vermelhos
Escolha CVS Commit Se quiser contar um pouco da histria dessa atualizao, agora um bom momento
Criando um mdulo
Diga que o repositrio est em (no nosso caso) p:\repositorio
Lembre-se que acentos e espaos em nomes de arquivos do azar
Uma caixa de areia s sua
O primeiro passo para comear a trabalhar com um projeto no CVS gerar sua cpia de trabalho
Em uma pasta vazia, escolha CVS Checkout
No CVSROOT coloque :local:p:\\repositorio e escolha o mdulo projeto
Na pasta, escola CVS Update
Verde indica que o arquivo no foi modificado desde que foi trazido do repositrio
As ltimas alteraes so baixadas para sua mquina com CVS Update faa isso com frequncia
Voc mudou coisas
Quando voc muda coisas, hora de usar o Commit de novo
Commit manda tudo o que est pendente na sua rea de trabalho para o servidor
Se houver conflitos, ele consegue resolver automaticamente sozinho (ele avisa, claro)
Se ele no conseguir, ele espera que voc arrume
Dia do release
Voc pode marcar um determinado conjunto de arquivos como uma verso. Para isso, use CVS>Tag
Usando Update Special voc pode obter os arquivos de um determinado tag ou de uma determinada data.
CVS no faz nem build nem deploy (at certo ponto). Isso por sua conta.
Dois cenrios
Scripts
Basta copiar os arquivos de uma determinada verso para o servidor de web
Voc pode, inclusive, servir as pginas a partir de uma rea de trabalho do CVS e atualiz-las com update
Programas Compilados
Voc pode guardar os makefiles junto dos fontes no CVS
Voc faz o build e o deployment
Tags e Branches
Voc liberou a verso 1.0 do produto
Mas ela tinha um bug srio
S que os fontes esto entre a 1.0 e a 1.1
E voc precisa consertar a 1.0
Voc faz um branch sobre o tag que voc criou
Voc trabalha no branch
Quando arrumar, faz o merge (ou no)
Grfico de Revises
Estamos trabalhando na reviso 1.1.2.1 do arquivo teste.py (que faz parte da verso 1.0.1, do branch testes, sendo que a reviso 1.1 parte da verso 1.0 e a 1.2 a mais atual
Palavras Mgicas
$Id$ - Nome do arquivo, reviso, autor, data
$Revision$ - Identificador da reviso
$Author$ - Login do usurio que fez o ltimo check-in
$Log$ - Comentrio do check-in
$Date$ - Quando essa verso foi acrescentada ao repositrio
S programas?
Voc pode guardar mais coisas no CVS alm dos fontes
Documentao (cuidado com arquivos binrios)
Imagens, scripts de ajuda, carga inicial de BD, dados de testes, etc.
Makefiles, arquivos de projeto (mas eu j disse isso)
Fazendo back-up
O repositrio no sabe nada sobre os clientes s sabe do cdigo e das revises
Copiar os arquivos basta
Voltando o back-up
Em caso de desastre, trazer os arquivos de volta resolve
Desenvolvedores fazem novo update e resolvem eventuais conflitos
Dvidas?
Para saber mais
O CVS: http://www.cvshome.org
Tortoise CVS: http://www.tortoisecvs.org
WinCVS, MacCvsX, gCVS: http://www.wincvs.org
Version Management with CVS: http://www.cvshome.org/docs/manual/
Recommended