Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Subvertendo o Código PHP com SVN

Subvertendo o Código PHP com SVN

Arquiteturas e Vantagens do Subversion. Ferramentas básicas e estratégias de uso.

Ricardo Coelho

December 06, 2011
Tweet

More Decks by Ricardo Coelho

Other Decks in Programming

Transcript

  1. Quem sou eu? 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
  2. Porque Subversion? 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
  3. Quem migrou do CVS? Quem migrou do CVS? • Apache

    Software Foundation • Debian • Zope • KDE • Mono • (…) todo mundo está migrando!
  4. Integração Contínua 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
  5. Componentes Componentes • svn: Ferramenta cliente • Update, Checkout, Commit,

    Import, Export • svnadmin: Ferramenta do repositório • Create • svnserve: Servidor dedicado TCP/IP • svnlook: Ferramenta para inspeção • DAV: Módulo servidor TCP/IP do Apache
  6. Arquitetura Arquitetura svn (cliente texto) Aplicativo Gráfico Serviços para Aplicações

    Cliente Biblioteca de Gerenciamento de cópias de trabalho Acesso ao Repositório svnserve SVN File Repositório BDB ou FSFS DAV HTTPS HTTP SSH Esquemas file:// http:// https:// svn:// svn+ssh://
  7. Comandos básicos Comandos básicos • svnadmin create • svn import

    • svn checkout • svn update • svn commit • svn revert • svn export • .svn? • svn switch
  8. Concorrência 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?
  9. Branches & Tags 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?