Palestrante: Wanderson Henrique Camargo Rosa – Canoas/ RS
Currículo: Programador PHP Zend Framework pela Prefeitura Municipal de Gravataí. Curso de Ciência da Computação pela Universidade do Vale do Rio dos Sinos (UNISINOS).
Resumo: Informações sobre o que é um sistema de versionamento de software e como utilizá-lo corretamente. Apresentação da ferramenta Subversion, como criar um Serviço e utilizar o Cliente.
Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa
1. Subversion
Versionamento de Software
Wanderson Henrique Camargo Rosa
Universidade do Vale do Rio dos Sinos UNISINOS
6 de dezembro de 2010
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 1 / 27
2. Agenda
1 Introdução
Escopo
Dados Pessoais
Objetivos
2 Teoria de Versionamento
Controle de Versão
Termos Técnicos
3 Utilização do Versionamento
Criação do Servidor
Comandos Básicos
Aplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 2 / 27
3. Introdução Escopo
Agenda
1 Introdução
Escopo
Dados Pessoais
Objetivos
2 Teoria de Versionamento
Controle de Versão
Termos Técnicos
3 Utilização do Versionamento
Criação do Servidor
Comandos Básicos
Aplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 3 / 27
4. Introdução Escopo
Escopo
Escopo da Palestra
Nível
Iniciante
Escopo
Desenvolvimento de Software
Versionamento de Software
Pré-Requisitos
Nenhum
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 4 / 27
5. Introdução Dados Pessoais
Agenda
1 Introdução
Escopo
Dados Pessoais
Objetivos
2 Teoria de Versionamento
Controle de Versão
Termos Técnicos
3 Utilização do Versionamento
Criação do Servidor
Comandos Básicos
Aplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 5 / 27
6. Introdução Dados Pessoais
Informações
Dados Pessoais
Bacharelado em Ciência da Computação
Universidade do Vale do Rio dos Sinos UNISINOS
Desenvolvedor PHP Zend Framework
Prefeitura Municipal de Gravataí
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 6 / 27
7. Introdução Objetivos
Agenda
1 Introdução
Escopo
Dados Pessoais
Objetivos
2 Teoria de Versionamento
Controle de Versão
Termos Técnicos
3 Utilização do Versionamento
Criação do Servidor
Comandos Básicos
Aplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 7 / 27
8. Introdução Objetivos
Objetivos
Objetivos
Teoria de Versionamento de Software
Criação de Servidor e Utilização do Subversion
Aplicação em Projetos
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 8 / 27
9. Teoria de Versionamento Controle de Versão
Agenda
1 Introdução
Escopo
Dados Pessoais
Objetivos
2 Teoria de Versionamento
Controle de Versão
Termos Técnicos
3 Utilização do Versionamento
Criação do Servidor
Comandos Básicos
Aplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 9 / 27
10. Teoria de Versionamento Controle de Versão
Versionamento de Software
cp projeto projeto_bkp
mv projeto_bkp projeto_anteontem
cp projeto projeto_tres_anteontem
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 10 / 27
11. Teoria de Versionamento Controle de Versão
Teoria de Versionamento
Controle de Versão
Um sistema de controle de versão é o local para armazenamento de todas
as várias revisões de conteúdo desenvolvido enquanto criamos uma
aplicação[2]. Cada revisão recebe um número que representa o estado do
código em determinado momento. Além disso, cada revisão recebe uma
mensagem do usuário responsável informando a causa das modicações.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 11 / 27
12. Teoria de Versionamento Controle de Versão
Teoria de Versionamento
Controle de Versão
Um sistema de controle de versão é o local para armazenamento de todas
as várias revisões de conteúdo desenvolvido enquanto criamos uma
aplicação[2]. Cada revisão recebe um número que representa o estado do
código em determinado momento. Além disso, cada revisão recebe uma
mensagem do usuário responsável informando a causa das modicações.
Trabalho do Versionador
O controle de versão não somente armazena a cópia atual dos arquivos,
mas controla as alterações já enviadas. Podemos assim, solicitar uma
versão de arquivo especíca ou efetuar uma cópia exata do documento há
duas semanas. O servidor de controle de versões recebe o nome de
repositório.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 11 / 27
13. Teoria de Versionamento Termos Técnicos
Agenda
1 Introdução
Escopo
Dados Pessoais
Objetivos
2 Teoria de Versionamento
Controle de Versão
Termos Técnicos
3 Utilização do Versionamento
Criação do Servidor
Comandos Básicos
Aplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 12 / 27
14. Teoria de Versionamento Termos Técnicos
Termos Técnicos
Working Copy
É a cópia local de todas as informações que precisamos do repositório para
trabalhar em nossa parte do projeto. A cópia de trabalho recebe as
modicações do projeto, que não são salvas enquanto não são enviadas ao
repositório. Ela recebe atualizações e modicações de outros colaboradores
do projeto[2].
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 13 / 27
15. Teoria de Versionamento Termos Técnicos
Termos Técnicos
Working Copy
É a cópia local de todas as informações que precisamos do repositório para
trabalhar em nossa parte do projeto. A cópia de trabalho recebe as
modicações do projeto, que não são salvas enquanto não são enviadas ao
repositório. Ela recebe atualizações e modicações de outros colaboradores
do projeto[2].
Checkout
O processo de checkout garante a criação de uma cópia de trabalho com as
últimas revisões dos arquivos solicitados e que a estrutura de diretórios
criada localmente será idêntica a que está no repositório[2].
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 13 / 27
16. Teoria de Versionamento Termos Técnicos
Termos Técnicos
Commit
Envio das alterações feitas na cópia de trabalho para o repositório.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 14 / 27
17. Teoria de Versionamento Termos Técnicos
Termos Técnicos
Commit
Envio das alterações feitas na cópia de trabalho para o repositório.
Update
Uma atualização é efetuada para solicitar as últimas revisões que estão no
repositório. Se no servidor existirem novas atualizações de código que
acabamos de enviar, o sistema de versionamento prioriza as suas alterações.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 14 / 27
18. Teoria de Versionamento Termos Técnicos
Estrutura Básica
Trunk
A linha principal de desenvolvimento do projeto, que sempre estará em
constante modicações[2]. Contém códigos ainda não testadose que não
estão prontos.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 15 / 27
19. Teoria de Versionamento Termos Técnicos
Estrutura Básica
Trunk
A linha principal de desenvolvimento do projeto, que sempre estará em
constante modicações[2]. Contém códigos ainda não testadose que não
estão prontos.
Tags
São nomes informados para números de revisões especícas. Ao invés de
solicitarmos a revisão r563, podemos solicitar a revisão beta2.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 15 / 27
20. Teoria de Versionamento Termos Técnicos
Estrutura Básica
Trunk
A linha principal de desenvolvimento do projeto, que sempre estará em
constante modicações[2]. Contém códigos ainda não testadose que não
estão prontos.
Tags
São nomes informados para números de revisões especícas. Ao invés de
solicitarmos a revisão r563, podemos solicitar a revisão beta2.
Branches
Linha de desenvolvimento que existe independentemente de outras linhas,
mas que ainda compartilha uma história em comum[1]. Sempre inicia como
uma cópia de uma revisão qualquer.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 15 / 27
21. Teoria de Versionamento Termos Técnicos
Perguntas
Pergunta
Todos os arquivos de um projeto devem ser versionados?
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 16 / 27
22. Teoria de Versionamento Termos Técnicos
Perguntas
Pergunta
Todos os arquivos de um projeto devem ser versionados?
Resposta
Não. Somente devem ser versionados arquivos de código-fonte. Arquivos
que podem ser gerados a partir de outros não devem ser versionados.
Imagens Temporárias (Captchas)
Documentação Externa de Código (JavaDocs)
Serialização de Classes em Cache (Zend Cache)
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 16 / 27
23. Teoria de Versionamento Termos Técnicos
Perguntas
Pergunta
Cada envio de alterações pode receber um texto resumindo as modicações
do usuário. O que deve ser escrito neste texto?
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 17 / 27
24. Teoria de Versionamento Termos Técnicos
Perguntas
Pergunta
Cada envio de alterações pode receber um texto resumindo as modicações
do usuário. O que deve ser escrito neste texto?
Resposta
Deve ser escrito na mensagem o porquê das modicações e não o que foi
modicado. Exemplo: Esta versão recebeu modicações de autenticação
pois estávamos com erro de acesso ao banco de dados quando o usuário
não digitava o seu nome.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 17 / 27
25. Utilização do Versionamento Criação do Servidor
Agenda
1 Introdução
Escopo
Dados Pessoais
Objetivos
2 Teoria de Versionamento
Controle de Versão
Termos Técnicos
3 Utilização do Versionamento
Criação do Servidor
Comandos Básicos
Aplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 18 / 27
26. Utilização do Versionamento Criação do Servidor
Instalação e Clientes
Instalação
Ubuntu
$ sudo apt-get install subversion
Fedora
# yum install subversion
Clientes Grácos
Windows TortoiseSVN
http://tortoisesvn.tigris.org/
Eclipse Subclipse
http://subclipse.tigris.org/
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 19 / 27
27. Utilização do Versionamento Criação do Servidor
Servidor
Criação do Servidor
$ svnadmin create servername
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 20 / 27
28. Utilização do Versionamento Criação do Servidor
Servidor
Criação do Servidor
$ svnadmin create servername
Autenticação
Arquivo: servername/conf/svnserve.conf
Linha: anon-access = read
Linha: auth-access = write
Linha: password-db = passwd
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 20 / 27
29. Utilização do Versionamento Criação do Servidor
Servidor
Criação do Servidor
$ svnadmin create servername
Autenticação
Arquivo: servername/conf/svnserve.conf
Linha: anon-access = read
Linha: auth-access = write
Linha: password-db = passwd
Inicialização do Serviço
$ svnserve -r servername -d
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 20 / 27
30. Utilização do Versionamento Criação do Servidor
Servidor
Criação do Servidor
$ svnadmin create servername
Autenticação
Arquivo: servername/conf/svnserve.conf
Linha: anon-access = read
Linha: auth-access = write
Linha: password-db = passwd
Inicialização do Serviço
$ svnserve -r servername -d
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 20 / 27
31. Utilização do Versionamento Criação do Servidor
Criação do Servidor
Acesso Cliente
$ svn checkout svn://localhost/ servername
Estruturação Inicial
$ cd servername
$ svn mkdir trunk tags branches
$ svn commit -m Estrutura Inicial de Repositório
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 21 / 27
32. Utilização do Versionamento Comandos Básicos
Agenda
1 Introdução
Escopo
Dados Pessoais
Objetivos
2 Teoria de Versionamento
Controle de Versão
Termos Técnicos
3 Utilização do Versionamento
Criação do Servidor
Comandos Básicos
Aplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 22 / 27
33. Utilização do Versionamento Comandos Básicos
Adicionar Arquivos ao Versionamento
$ svn add lename
Enviar Modicações ao Repositório
$ svn commit -m Mensagem para Relatório
Atualizar Modicações Recentes
$ svn update
Atualizar para Revisão n do Repositório
$ svn update -rn
Resolver Conitos entre Revisões
$ svn resolve lename
Diferença entre Modicações e Revisão Atual
$ svn di
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 23 / 27
34. Utilização do Versionamento Aplicabilidades
Agenda
1 Introdução
Escopo
Dados Pessoais
Objetivos
2 Teoria de Versionamento
Controle de Versão
Termos Técnicos
3 Utilização do Versionamento
Criação do Servidor
Comandos Básicos
Aplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 24 / 27
35. Utilização do Versionamento Aplicabilidades
Aplicabilidades
Patches de Software
Estudo de Modicações Recentes
Controle Completo do Projeto
Trabalho Concorrente entre Pessoas
Instalação de Módulos no Apache
Utilização de Repositórios Online
Google Code
SourceForge
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 25 / 27
36. Utilização do Versionamento Aplicabilidades
Referências
Ben Collins-Sussman.
Version Control with Subversion.
TBA, compiled from r2866 edition, 2007.
Mike Mason.
Pragmatic Version Control Using Subversion.
The Pragmatic Bookshelf. The Pragmatic Programmers LLC., 1st
edition, February 2005.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 26 / 27
37. Utilização do Versionamento Aplicabilidades
Subversion
Versionamento de Software
Wanderson Henrique Camargo Rosa
Universidade do Vale do Rio dos Sinos UNISINOS
6 de dezembro de 2010
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 27 / 27