Svn Tech Thursday

Preview:

DESCRIPTION

Apresentação de boas práticas em Subversion (SVN) que apresentei na Tech Thursday da Agence.

Citation preview

SVN

Se Vira, Nub

SVN : O que é?

•Sistema de controle de versão

•Substituto do CVS

•Software Livre

Sistema de Controle de Versão•Funções Básicas:

•Envio e resgate de versões;

•Histórico de envios;

•Comparação de versões;

•Resolução de conflitos;

•Ramificações e marcações;

•Otimização de espaço e velocidade.

Sistema de Controle de Versão•Microsoft Visual SourceSafe (VSS)

•Rational ClearCase (IBM)

•Concurrent Version System (CVS)

•Subversion (SVN)

•Git

•Mercurial

Comparativo

Subversion

•Projeto iniciado em 2000

•Financiado pela CollabNet

•Primeiro release em 2004

•Semelhante ao CVS com melhorias

Subversion : Recursos

•Commits são atômicos (CVS não)

•Suporte a rename, move, copy

•Permissões por pasta (WebDAV)

•Bom suporte para arquivos binários

Su

bvers

ion

:

Dia

gra

ma B

ási

co

Subversion : Conceitos

•Repositório / Versão Local (WC)

•Checkout (co)

•Importar / Exportar

•Uptade (up) / Commit (ci) / Merge

•Revisão / HEAD

•Relocate / Switch

Subversion : Conceitos

•Branch / Tag

•Properties (svn:ignore)

•Lock / Unlock

•Patch

Subversion :Problemas

•Operação rename = copy + delete

•Arquivos .svn podem causar problema

•Nomes de arquivos em unicode

•Comando svn log recursivo

Subversion :Boas Práticas

trunk

Rev01 Rev02 Rev03

Subversion :Boas Práticas

•Comentar os Commits

trunk

Rev01: Commit inicial

Rev02: Criação do login e cadastro de usuário

Rev03: Implementação da listagem de usuários

Subversion :Boas Práticas

•Trabalhar em Branches

trunk

Rev01: Commit inicial

Rev02: Criação do login e cadastro de usuário

Rev03: Implementação da listagem de usuários

copy switch

mergecommit

Rev04: Commit da task 001

branches/task_001

atividade de criação do gerenciamento de usuários

Subversion :Boas Práticas

•Gerar Tags estáveis (para produção)

trunk

Rev01: Commit inicial

Rev02: Criação do login e cadastro de usuário

Rev03: Implementação da listagem de usuários

branches/task_001

atividade de criação do gerenciamento de usuários

copy switch

mergecommit

Rev04: Commit da task 001

tags/20100802

copy

Subversion : Boas Práticas

Subversion :Boas Práticas

•Trunk sempre compilável (Integração contínua)

•Constante integração do WC com o Repositório

•Evitar commit de coisas dispensáveis (usar svn:ignore)