Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Controlando Projetos com Netbeans e Subversion
Curriculum <ul><li>Formado em Tecnologia da Informática – Fatec jahu </li></ul><ul><li>Cursando Pós em Gerenciamento de Pr...
Agenda <ul><li>Visão geral dos Softwares Utilizados </li></ul><ul><li>Por que versionar? </li></ul><ul><li>O Subversion </...
Softwares utilizados <ul><li>Ubuntu 9.04 </li></ul><ul><li>Subversion 1.5.4 </li></ul><ul><li>Apache 2.2 </li></ul><ul><li...
Por que versionar? <ul><li>Não versionar está na lista dos 40 sinais que dizem se você é um péssimo programador PHP  (Font...
Subversion <ul><li>Subversion é um sistema de controle de versões.  </li></ul><ul><li>Ele gerencia arquivos, diretórios e ...
Subversion Fonte: http://subversion.tigris.org/svn-dav-securityspace-survey.html
Subversion <ul><li>Projetos Open Source que usam o Subversion: </li></ul><ul><ul><li>PHP </li></ul></ul><ul><ul><li>ASF: T...
Subversion - Instalação <ul><li>sudo apt-get install apache2 subversion libapache2-svn </li></ul><ul><li>sudo gedit /etc/a...
Subversion - Conceitos Modelo   Típico Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
Subversion - Conceitos Problemas deste modelo Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
Subversion - Conceitos Solução Lock – Modify - Unlock Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
Subversion - Conceitos Solução Copy – Modify - Merge Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
Subversion - Conceitos Solução Copy – Modify - Merge Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
Subversion - Conceitos Subversion URLs
Subversion - Conceitos Criando uma cópia de trabalho Enviando uma alteração Working Copies
Subversion - Conceitos svn update:  Atualiza a cópia de trabalho Revisões
Subversion - Conceitos <ul><li>Informações gravadas para cada pasta (.svn) </li></ul><ul><ul><li>Em qual revisão a cópia é...
Subversion - Conceitos <ul><li>svn import </li></ul><ul><li>svn checkout </li></ul>Enviando e obtendo dados do repositório
Subversion - Conceitos Layout recomendado para o repositório
Subversion -  Uso Básico <ul><li>Criar repositório </li></ul><ul><li>•  svnadmin create /var/svn/airalliance </li></ul><ul...
Subversion -  Uso Básico <ul><li>Ciclo básico de trabalho </li></ul>Criar uma cópia de trabalho svn checkout  http://local...
Branching, tagging and merging O que é um Branch? Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
Branching, tagging and merging Usando Branches
Branching, tagging and merging Alternando: svn switch Trabalhando com branch Fonte: http://svnbook.red-bean.com/en/1.1/svn...
Branching, tagging and merging Merging a Branch
Branching, tagging and merging <ul><li>Release Branches </li></ul><ul><ul><li>Desenvolvedores submetem todo novo trabalho ...
Branching, tagging and merging <ul><li>Feature branches </li></ul><ul><ul><li>Todo o trabalho é realizado no trunk; </li><...
Clients <ul><li>svn (linha de comando) </li></ul><ul><li>Clients integradas com IDE </li></ul><ul><li>Tortoise SVN </li></...
Dúvidas <ul><li>[email_address] </li></ul>http://svnbook.red-bean.com/en/1.1/svn-book.pdf
Upcoming SlideShare
Loading in …5
×

Controlando Projetos com Netbeans e Subversion

12,357 views

Published on

Apresentação utilizada na PHP Conference 2009

Published in: Technology

Controlando Projetos com Netbeans e Subversion

  1. 1. Controlando Projetos com Netbeans e Subversion
  2. 2. Curriculum <ul><li>Formado em Tecnologia da Informática – Fatec jahu </li></ul><ul><li>Cursando Pós em Gerenciamento de Projetos – Senac Bauru </li></ul><ul><li>5 anos de experiência em PHP </li></ul><ul><li>Desenvolvedor PHP na Editora Alto Astral há 2 anos </li></ul>Leandro Augusto Kitamura (lekitamura@gmail.com)
  3. 3. Agenda <ul><li>Visão geral dos Softwares Utilizados </li></ul><ul><li>Por que versionar? </li></ul><ul><li>O Subversion </li></ul><ul><ul><li>Instalação </li></ul></ul><ul><ul><li>Conceitos </li></ul></ul><ul><ul><li>Uso básico </li></ul></ul><ul><li>Branching, tagging and merging </li></ul><ul><li>Padrões de Utilização </li></ul><ul><li>Clients </li></ul><ul><li>Dúvidas </li></ul>
  4. 4. Softwares utilizados <ul><li>Ubuntu 9.04 </li></ul><ul><li>Subversion 1.5.4 </li></ul><ul><li>Apache 2.2 </li></ul><ul><li>Netbeans 6.7.1 + Plugin para PHP 1.6.2 </li></ul><ul><li>VirtualBox 2.1.4 </li></ul>
  5. 5. Por que versionar? <ul><li>Não versionar está na lista dos 40 sinais que dizem se você é um péssimo programador PHP (Fonte: http://soft.belhard.com/wordpress/?p=27); </li></ul><ul><li>Possibilitar rápidos downgrades de sistemas; </li></ul><ul><li>Responder questões que estão no coração de um sistema de versionamento como: </li></ul><ul><ul><li>O que o arquivo continha na quarta-feira passada? </li></ul></ul><ul><ul><li>Quem foi o último desenvolvedor a alterar o arquivo? </li></ul></ul><ul><ul><li>O que ele fez? </li></ul></ul>
  6. 6. Subversion <ul><li>Subversion é um sistema de controle de versões. </li></ul><ul><li>Ele gerencia arquivos, diretórios e as alterações realizadas nos mesmos. </li></ul>
  7. 7. Subversion Fonte: http://subversion.tigris.org/svn-dav-securityspace-survey.html
  8. 8. Subversion <ul><li>Projetos Open Source que usam o Subversion: </li></ul><ul><ul><li>PHP </li></ul></ul><ul><ul><li>ASF: The Apache Software Foundation; </li></ul></ul><ul><ul><li>KDE: The K Desktop Environment; </li></ul></ul><ul><ul><li>GNOME: The GNOME Project; </li></ul></ul><ul><ul><li>GCC: The GNU Compiler Collection; </li></ul></ul><ul><ul><li>Python: The Python programming language; </li></ul></ul><ul><ul><li>Samba: SMB services for *nix systems; </li></ul></ul><ul><ul><li>Mono: an open-source implementation of C#/.NET; </li></ul></ul><ul><ul><li>PuTTY: Win32 SSH/Telnet implementation; </li></ul></ul>Fonte: http://subversion.tigris.org/testimonials.html#open-source-projects-using-svn
  9. 9. Subversion - Instalação <ul><li>sudo apt-get install apache2 subversion libapache2-svn </li></ul><ul><li>sudo gedit /etc/apache2/mods-available/dav_svn.conf </li></ul><ul><ul><li>... </li></ul></ul><ul><ul><li>SVNParentPath /var/svn/repository </li></ul></ul><ul><ul><li>#SVNPath /var/svn/repository </li></ul></ul><ul><ul><li>..... </li></ul></ul><ul><ul><li>AuthType Basic </li></ul></ul><ul><ul><li>AuthName &quot;Subversion Repository&quot; </li></ul></ul><ul><ul><li>AuthUserFile /etc/apache2/dav_svn.passwd </li></ul></ul><ul><ul><li>Require valid-user </li></ul></ul><ul><ul><li>... </li></ul></ul><ul><li>htpasswd2 -c /etc/apache2/dav_svn.passwd tester </li></ul><ul><li>sudo /etc/init.d/apache2 restart </li></ul>
  10. 10. Subversion - Conceitos Modelo Típico Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
  11. 11. Subversion - Conceitos Problemas deste modelo Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
  12. 12. Subversion - Conceitos Solução Lock – Modify - Unlock Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
  13. 13. Subversion - Conceitos Solução Copy – Modify - Merge Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
  14. 14. Subversion - Conceitos Solução Copy – Modify - Merge Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
  15. 15. Subversion - Conceitos Subversion URLs
  16. 16. Subversion - Conceitos Criando uma cópia de trabalho Enviando uma alteração Working Copies
  17. 17. Subversion - Conceitos svn update: Atualiza a cópia de trabalho Revisões
  18. 18. Subversion - Conceitos <ul><li>Informações gravadas para cada pasta (.svn) </li></ul><ul><ul><li>Em qual revisão a cópia é baseada; </li></ul></ul><ul><ul><li>Timestamp gravado na última atualização com o repositório; </li></ul></ul><ul><li>Estados </li></ul><ul><ul><li>Não modificado e corrente; </li></ul></ul><ul><ul><li>Localmente modificado e corrente; </li></ul></ul><ul><ul><li>Não modificado e out-of-date; </li></ul></ul><ul><ul><li>Localmente modificado e out-of-date; </li></ul></ul><ul><li>Comando que exibe o estado: svn status </li></ul>Estados da Cópia de Trabalho
  19. 19. Subversion - Conceitos <ul><li>svn import </li></ul><ul><li>svn checkout </li></ul>Enviando e obtendo dados do repositório
  20. 20. Subversion - Conceitos Layout recomendado para o repositório
  21. 21. Subversion - Uso Básico <ul><li>Criar repositório </li></ul><ul><li>• svnadmin create /var/svn/airalliance </li></ul><ul><li>• chown -R www-data:www-data /var/svn/airalliance </li></ul><ul><li>• chmod -R 770 /var/svn/airalliance </li></ul><ul><li>• svn mkdir -m 'Estrutura Inicial' http://localhost/svn/airalliance/trunk </li></ul><ul><li>• svn mkdir -m 'Estrutura Inicial' http://localhost/svn/airalliance/branches </li></ul><ul><li>• svn mkdir -m 'Estrutura Inicial' http://localhost/svn/airalliance/tags </li></ul><ul><li>Enviando dados para o repositório </li></ul><ul><li>• svn import -m 'Import Inicial' http://localhost/svn/airalliance/trunk </li></ul>Ciclo básico de trabalho
  22. 22. Subversion - Uso Básico <ul><li>Ciclo básico de trabalho </li></ul>Criar uma cópia de trabalho svn checkout http://localhost / svn / airalliance / trunk /var/www/airalliance Submeter alterações • svn commit Atualizar sua cópia de trabalho • svn update Fazer alterações • svn add, svn delete, svn copy, svn move Examinar mudanças • svn status, svn diff Possivelmente desfazer algumas mudanças • svn revert Resolver conflitos • svn update, svn resolved
  23. 23. Branching, tagging and merging O que é um Branch? Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
  24. 24. Branching, tagging and merging Usando Branches
  25. 25. Branching, tagging and merging Alternando: svn switch Trabalhando com branch Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
  26. 26. Branching, tagging and merging Merging a Branch
  27. 27. Branching, tagging and merging <ul><li>Release Branches </li></ul><ul><ul><li>Desenvolvedores submetem todo novo trabalho para o trunk. Correções, novas features; </li></ul></ul><ul><ul><li>Quando a equipe acha que software está pronto para o primeiro release (1.0 release) o trunk é copiado para um “release” branch (branches/1.0); </li></ul></ul><ul><ul><li>Uma equipe inicia os testes no branch enquanto outra continua o trabalho no trunk (para a versão 2.0) enquanto outra testa o branch, se um bug é encontrado ele é corrigido em ambos; </li></ul></ul><ul><ul><li>Quando os testes terminam o branch é copiado para tag/1.0.0 e disponibilizado para os clientes; </li></ul></ul><ul><ul><li>O branch é mantido, o trabalho no trunk continua e bugs encontrados vão sendo corrigidos e a correção é replicada para o branch, quando o número de correções é significativo é gerada a release tag/1.0.1 e disponibilizada para os clientes; </li></ul></ul>Common Branching Patterns
  28. 28. Branching, tagging and merging <ul><li>Feature branches </li></ul><ul><ul><li>Todo o trabalho é realizado no trunk; </li></ul></ul><ul><ul><li>Um branch é criado para modificações complexas; </li></ul></ul><ul><ul><li>Quando o trabalho termina ele é reintegrado ao trunk e deletado. </li></ul></ul>Common Branching Patterns
  29. 29. Clients <ul><li>svn (linha de comando) </li></ul><ul><li>Clients integradas com IDE </li></ul><ul><li>Tortoise SVN </li></ul><ul><li>Outros: http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients </li></ul>
  30. 30. Dúvidas <ul><li>[email_address] </li></ul>http://svnbook.red-bean.com/en/1.1/svn-book.pdf

×