Você está na página 1de 19

Controle de Verso com SubVersion

Erick Sasse Cadena Sistemas

Erick Sasse

Desenvolvedor h uns 15 anos Ex-MSX (Expert DDPlus) Ex-clippeiro Ex-BBSeiro Delphi desde a primeira verso Aventuras em C# (VS.NET) Usurio PalmOS (inclinando para PocketPC) Aspirante a mergulhador Palestrante DDD, FDD, BorCon.

Por que usar controle de verso?

Registro histrico dos arquivos dos projetos ao longo do tempo. Permite que desenvolvedores trabalhem juntos sem que um atrapalhe o outro. No apenas para equipes de desenvolvedores. Pode rodar localmente com muita eficincia. Existem opes totalmente gratuitas (ex. SubVersion). Segurana total na manipulao e alterao do cdigo. Loucura no usar, principalmente quando em mais de um desenvolvedor.

Benefcios

Backup automtico do cdigo fonte (quando usado em computador separado). Recuperao fcil do estado anterior do cdigo quando se faz algo que no ficou bom. Compartilhamento de cdigo totalmente suave e sem dores de cabea. Diferentes verses em paralelo (branches). Consultar qualquer verso de um arquivo. Voc no precisa mais gritar pelo corredor para saber se algum est usando o arquivo que voc quer editar.

Mesmo assim...

Algumas pesquisas indicam que cerca de

70%

dos

desenvolvedores no utilizam nenhum tipo de controle de verso!!!!

Ser que ele usava?

Por que SubVersion?

Open Source Roda nas principais plataformas (Windows, Linux) Roda localmente Sucessor natural do CVS Versionamento de diretrios Commits atmicos Acesso via HTTP http://subversion.tigris.org/

TortoiseSVN
Cliente grfico do SubVersion para Windows Integrado ao shell Voc praticamente s usar ele. http://tortoisesvn.tigris.org/

Modelos de Versionamento

Lock-Modify-Unlock
Ou

checkout-edit-checkin; Falsa noo de segurana. Mais problemas do que parece. Desenvolvedores esquecem arquivos travados frequentemente. Voc s consegue alterar um arquivo se conseguir destrav-lo. Dificulta uso off-line.

Modelos de Versionamento

Copy-Modify-Merge
Mtodo

usado pelo SubVersion. Mais simples e prtico. Desenvolvedores podem trabalhar em paralelo no mesmo arquivo. Muito menos problemtico do que voc pensa. Todo desenvolvedor tem uma cpia de trabalho em sua mquina liberada para edio. Tranqilo para uso off-line.

Ciclo bsico de trabalho


Atualiza sua cpia de trabalho com os arquivos do servidor Realiza modificaes na cpia local Examina modificaes Salva suas modificaes no servidor

Demo

Tags (ou labels)


Um dos recursos mais importantes do controle de verso. Usadas para marcar um determinado momento do seu repositrio com um nome com algum significado mais simblico.

Demo

Quando usar tags

Use a vontade, no tem efeitos colaterais:


Quando

voc faz um release Antes de fazer uma grande modificao Quando voc faz um build automatizado

Branches

Voc usa branches quando precisa trabalhar em duas verses distintas de um projeto ao mesmo tempo.
Novas

verses: Aps o lanamento da verso 1.0 do seu aplicativo, voc tem que iniciar o desenvolvimento da verso 2.0 e manter a 1.0.

No tenha medo de usar. Demo

rvore padro de projeto


/projeto1
/trunk (sua linha atual de desenvolvimento) /braches /tags

/projeto2
/trunk /braches /tags

Quais arquivos controlar?

Somente arquivos necessrios para o build do aplicativo. No controle arquivos que so gerados automaticamente, como EXEs, DLLs, DCUs, etc. Arquivos texto (cdigo fonte, HTML, XML) so gerenciados graciosamente. Arquivos binrios devem ser controlados apenas em ltimo caso, ou seja, quando no se tem os fontes que os geram. E ainda assim, somente se eles forem necessrios para o build do nosso aplicativo.

Regras Bsicas

S commitar cdigo compilvel. Quem quebrar o build tem que sofrer:


Fazer caf toda manh; Depositar R$1 no jarro para

o chopp da galera no

final do projeto;

Realizar commits freqentes, para evitar conflitos. Execute o Diff sempre antes de cada commit para revisar suas alteraes. Descreva seus commits o mximo possvel.

Referncias

SubVersion (http://subversion.tigris.org) TortoiseSVN (http://tortoisesvn.tigris.org) SVN Book (http://svnbook.org/) Source Control HOWTO (http://software.ericsink.com/scm/source_control .html) Wush.net Hospedagem SubVersion (http://www.wush.net/)

Obrigado!
erick.sasse@cadena.com.br www.ericksasse.com.br

Você também pode gostar