XI Jornada de Informática Controlando Projetos com Netbeans e Subversion
XI Jornada de Informática 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 Leandro Augusto Kitamura
XI Jornada de Informática Agenda 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
XI Jornada de Informática Softwares utilizados Ubuntu 9.04 Subversion Apache 2.2 Netbeans Plugin para PHP VirtualBox 2.1.4
XI Jornada de Informática Por que versionar? 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?
XI Jornada de Informática Subversion Subversion é um sistema de controle de versões. Ele gerencia arquivos, diretórios e as alterações realizadas nos mesmos.
XI Jornada de Informática Subversion Fonte:
XI Jornada de Informática Subversion 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:
XI Jornada de Informática Subversion - Instalação 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
XI Jornada de Informática Subversion - Conceitos Modelo Típico Fonte:
XI Jornada de Informática Subversion - Conceitos Problemas deste modelo Fonte:
XI Jornada de Informática Subversion - Conceitos Solução Lock – Modify - Unlock Fonte:
XI Jornada de Informática Subversion - Conceitos Solução Copy – Modify - Merge Fonte:
XI Jornada de Informática Subversion - Conceitos Solução Copy – Modify - Merge Fonte:
XI Jornada de Informática Subversion - Conceitos Subversion URLs
XI Jornada de Informática Subversion - Conceitos Criando uma cópia de trabalho Enviando uma alteração Working Copies
XI Jornada de Informática Subversion - Conceitos svn update: Atualiza a cópia de trabalho Revisões
XI Jornada de Informática Subversion - Conceitos 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
XI Jornada de Informática Subversion - Uso Básico svn import svn checkout Enviando e obtendo dados do repositório
XI Jornada de Informática Layout recomendado para o repositório Subversion - Uso Básico
XI Jornada de Informática Subversion - Uso Básico 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' svn mkdir -m 'Estrutura Inicial' svn mkdir -m 'Estrutura Inicial' Enviando dados para o repositório svn import -m 'Import Inicial' Ciclo básico de trabalho
XI Jornada de Informática Subversion - Uso Básico Ciclo básico de trabalho Criar uma cópia de trabalho svn checkout /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
XI Jornada de Informática Branching, tagging and merging O que é um Branch? Fonte:
XI Jornada de Informática Branching, tagging and merging Usando Branches
XI Jornada de Informática Branching, tagging and merging Alternando: svn switch Trabalhando com branch Fonte:
XI Jornada de Informática Branching, tagging and merging Merging a Branch
XI Jornada de Informática Branching, tagging and merging 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
XI Jornada de Informática Branching, tagging and merging 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
XI Jornada de Informática Clients svn (linha de comando) Clients integradas com IDE Tortoise SVN Outros:
XI Jornada de Informática Dúvidas