300 likes | 429 Views
Controlando Projetos com Netbeans e Subversion. Curriculum. Formado em Tecnologia da Informática – Fatec jahu Pós graduado em Gerenciamento de Projetos – Senac Bauru 6 anos de experiência em PHP Analista de Sistemas na Editora Alto Astral há 3 anos.
E N D
Controlando Projetos com Netbeans e Subversion XI Jornada de Informática
Curriculum XI Jornada de Informática • Formado em Tecnologia da Informática – Fatec jahu • Pós graduado em Gerenciamento de Projetos – Senac Bauru • 6 anos de experiência em PHP • Analista de Sistemas na Editora Alto Astral há 3 anos Leandro Augusto Kitamura (lekitamura@gmail.com)
Agenda XI Jornada de Informática • Visão geral dos Softwares Utilizados • Por que versionar? • O Subversion • Instalação • Conceitos • Uso básico • Branching, tagging and merging • Padrões de Utilização • Clients • Dúvidas
Softwares utilizados XI Jornada de Informática • Ubuntu 9.04 • Subversion 1.5.4 • Apache 2.2 • Netbeans 6.9.1 + Plugin para PHP 1.13.2 • VirtualBox 2.1.4
Por que versionar? XI Jornada de Informática • Não versionar está na lista dos 40 itens que dizem se você é um programador PHP fracassado; • Possibilitar rápidos downgrades de sistemas; • Responder questões que estão no coração de um sistema de versionamento como: • O que o arquivo continha na quarta-feira passada? • Quem foi o último desenvolvedor a alterar o arquivo? • O que ele fez?
Subversion XI Jornada de Informática • Subversion é um sistema de controle de versões. • Ele gerencia arquivos, diretórios e as alterações realizadas nos mesmos.
Subversion XI Jornada de Informática Fonte: http://subversion.tigris.org/svn-dav-securityspace-survey.html
Subversion XI Jornada de Informática • Projetos Open Source que usam o Subversion: • PHP • ASF: The Apache Software Foundation; • KDE: The K Desktop Environment; • GNOME: The GNOME Project; • GCC: The GNU Compiler Collection; • Python: The Python programming language; • Samba: SMB services for *nix systems; • Mono: an open-source implementation of C#/.NET; • PuTTY: Win32 SSH/Telnet implementation; Fonte: http://subversion.tigris.org/testimonials.html#open-source-projects-using-svn
Subversion - Instalação XI Jornada de Informática • sudo apt-get install apache2 subversion libapache2-svn • sudo gedit /etc/apache2/mods-available/dav_svn.conf ... SVNParentPath /var/svn/repository #SVNPath /var/svn/repository ..... AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user ... • htpasswd -c /etc/apache2/dav_svn.passwd tester • sudo /etc/init.d/apache2 restart
Subversion - Conceitos XI Jornada de Informática ModeloTípico Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
Subversion - Conceitos XI Jornada de Informática Problemas deste modelo Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
Subversion - Conceitos XI Jornada de Informática Solução Lock – Modify - Unlock Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
Subversion - Conceitos XI Jornada de Informática Solução Copy – Modify - Merge Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
Subversion - Conceitos XI Jornada de Informática Solução Copy – Modify - Merge Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
Subversion - Conceitos XI Jornada de Informática Subversion URLs
Subversion - Conceitos XI Jornada de Informática Working Copies Criando uma cópia de trabalho Enviando uma alteração
Subversion - Conceitos XI Jornada de Informática Revisões svn update: Atualiza a cópia de trabalho
Subversion - Conceitos XI Jornada de Informática • Informações gravadas para cada pasta (.svn) • Em qual revisão a cópia é baseada; • Timestamp gravado na última atualização com o repositório; • Estados • Não modificado e corrente; • Localmente modificado e corrente; • Não modificado e out-of-date; • Localmente modificado e out-of-date; • Comando que exibe o estado: svn status Estados da Cópia de Trabalho
Subversion - Uso Básico XI Jornada de Informática • svn import • svn checkout Enviando e obtendo dados do repositório
Subversion - Uso Básico XI Jornada de Informática Layout recomendado para o repositório
Subversion - Uso Básico XI Jornada de Informática • Criar repositório • • svnadmin create /var/svn/airalliance • • chown -R www-data:www-data /var/svn/airalliance • • chmod -R 770 /var/svn/airalliance • • svn mkdir -m 'Estrutura Inicial' http://localhost/svn/airalliance/trunk • • svn mkdir -m 'Estrutura Inicial' http://localhost/svn/airalliance/branches • • svn mkdir -m 'Estrutura Inicial' http://localhost/svn/airalliance/tags • Enviando dados para o repositório • • svn import -m 'Import Inicial' http://localhost/svn/airalliance/trunk Ciclo básico de trabalho
Subversion - Uso Básico XI Jornada de Informática • Ciclo básico de trabalho 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
Branching, tagging and merging XI Jornada de Informática O que é um Branch? Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
Branching, tagging and merging XI Jornada de Informática Usando Branches
Branching, tagging and merging XI Jornada de Informática Trabalhando com branch Alternando: svn switch Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf
Branching, tagging and merging XI Jornada de Informática Merging a Branch
Branching, tagging and merging XI Jornada de Informática • Release Branches • Desenvolvedores submetem todo novo trabalho para o trunk. Correções, novas features; • 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); • 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; • Quando os testes terminam o branch é copiado para tag/1.0.0 e disponibilizado para os clientes; • 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; Common Branching Patterns
Branching, tagging and merging XI Jornada de Informática • Feature branches • Todo o trabalho é realizado no trunk; • Um branch é criado para modificações complexas; • Quando o trabalho termina ele é reintegrado ao trunk e deletado. Common Branching Patterns
Clients XI Jornada de Informática • svn (linha de comando) • Clients integradas com IDE • Tortoise SVN • Outros: http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients
Dúvidas XI Jornada de Informática • lekitamura@gmail.com http://svnbook.red-bean.com/en/1.1/svn-book.pdf http://www.slideshare.net/lekitamura/controlando-projetos-com-netbeans-e-subversion