Upload
jairton-junior
View
684
Download
0
Embed Size (px)
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)