XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

30
XI Jornada de Informática Controlando Projetos com Netbeans e Subversion

Transcript of XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

Page 1: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Controlando Projetos com Netbeans e Subversion

Page 2: 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 ([email protected])

Page 3: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

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

Page 4: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Softwares utilizados

• Ubuntu 9.04• Subversion 1.5.4• Apache 2.2• Netbeans 6.9.1 + Plugin para PHP 1.13.2• VirtualBox 2.1.4

Page 5: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

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?

Page 6: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

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.

Page 7: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Subversion

Fonte: http://subversion.tigris.org/svn-dav-securityspace-survey.html

Page 8: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

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: http://subversion.tigris.org/testimonials.html#open-source-projects-using-svn

Page 9: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

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

Page 10: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Subversion - Conceitos

Modelo Típico

Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf

Page 11: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Subversion - Conceitos

Problemas deste modelo

Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf

Page 12: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Subversion - Conceitos

Solução Lock – Modify - Unlock

Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf

Page 13: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Subversion - Conceitos

Solução Copy – Modify - Merge

Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf

Page 14: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Subversion - Conceitos

Solução Copy – Modify - Merge

Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf

Page 15: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Subversion - Conceitos

Subversion URLs

Page 16: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Subversion - Conceitos

Criando uma cópia de trabalho

Enviando uma alteração

Working Copies

Page 17: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Subversion - Conceitos

svn update: Atualiza a cópia de trabalho

Revisões

Page 18: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

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

Page 19: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Subversion - Uso Básico

• svn import

• svn checkout

Enviando e obtendo dados do repositório

Page 20: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Layout recomendado para o repositório

Subversion - Uso Básico

Page 21: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

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' 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

Page 22: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Subversion - Uso Básico

Ciclo básico de trabalho

Criar uma cópia de trabalhosvn 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

Page 23: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Branching, tagging and merging

O que é um Branch?

Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf

Page 24: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Branching, tagging and merging

Usando Branches

Page 25: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Branching, tagging and merging

Alternando: svn switch

Trabalhando com branch

Fonte: http://svnbook.red-bean.com/en/1.1/svn-book.pdf

Page 26: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Branching, tagging and merging

Merging a Branch

Page 27: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

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

Page 28: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

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

Page 29: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Clients

• svn (linha de comando)

• Clients integradas com IDE

• Tortoise SVN

• Outros: http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients

Page 30: XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.

XI Jornada de Informática

Dúvidas

[email protected]

http://svnbook.red-bean.com/en/1.1/svn-book.pdf

http://www.slideshare.net/lekitamura/controlando-projetos-com-netbeans-e-subversion