O documento apresenta uma introdução ao sistema de controle de versão Subversion (SVN), destacando suas principais vantagens em relação a outros sistemas como CVS e VSS, como commit atômico e suporte a renomear, mover e copiar arquivos. Também discute conceitos como integração contínua, componentes do SVN, comandos básicos e estratégias para lidar com concorrência e branches/tags.
2. Quem sou eu?
●
Ricardo Coelho é fundador e coordenador do
PHP-Maranhão
●
Representante do estado no
PHP Brasil Comunidades
●
Auditor NBR ISO 27001:2006
●
Perito Forense Digital
●
CTO da Nexy
3. Porque Subversion?
●
E o CVS?
●
Faltam: commit atômico, rename, move,
copy, permissões de repositório
●
E o VSS?
●
Sem commit atômico, sem rename, sem
move, sem copy, sem permissões de
repositório, código proprietário, limitado a
plataforma Windows, só
funciona em repositórios
pequenos, documentação
escassa
4. Quem migrou do CVS?
●
Apache Software Foundation
●
Debian
●
Zope
●
KDE
●
Mono
●
(…) todo mundo está migrando!
5. Integração Contínua
●
Testes unitários executados a cada commit
●
É possível saber quem quebrou, onde, como e
quando e isso tudo na hora em que acontece
●
phpUnderControl
9. Concorrência
●
Acesso simultâneo
●
Estratégia de locking
●
Estratégia de merging
●
Resolução de conflitos
●
Quem commita primeiro
vai para casa mais cedo!
●
E se eu quiser incluir uma funcionalidade nova?
●
E como ficam as manutenções enquanto isso?
10. Branches & Tags
●
Diretórios recomendados
●
Branching === Copying
●
O histórico (Citarás o branching!)
●
svn status
●
svn diff
●
svn merge sempre da versão comum
●
Merging === Diff & Apply
●
Tag == Branch? WTF?
– Mantenha o repositório compilável!
– E se eu quiser continuar o trabalho em casa?