CVS

Embed Size (px)

Citation preview

PowerPoint Presentation

CVS Concurrent Versions System

Ricardo Bnffy

[email protected]

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/