versionamento de software com subversion - wanderson henrique camargo rosa
DESCRIPTION
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.TRANSCRIPT
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
Agenda
1 IntroduçãoEscopoDados PessoaisObjetivos
2 Teoria de VersionamentoControle de VersãoTermos Técnicos
3 Utilização do VersionamentoCriação do ServidorComandos BásicosAplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 2 / 27
Introdução Escopo
Agenda
1 IntroduçãoEscopoDados PessoaisObjetivos
2 Teoria de VersionamentoControle de VersãoTermos Técnicos
3 Utilização do VersionamentoCriação do ServidorComandos BásicosAplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 3 / 27
Introdução Escopo
Escopo
Escopo da Palestra
NívelIniciante
EscopoDesenvolvimento de SoftwareVersionamento de Software
Pré-RequisitosNenhum
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 4 / 27
Introdução Dados Pessoais
Agenda
1 IntroduçãoEscopoDados PessoaisObjetivos
2 Teoria de VersionamentoControle de VersãoTermos Técnicos
3 Utilização do VersionamentoCriação do ServidorComandos BásicosAplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 5 / 27
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
Introdução Objetivos
Agenda
1 IntroduçãoEscopoDados PessoaisObjetivos
2 Teoria de VersionamentoControle de VersãoTermos Técnicos
3 Utilização do VersionamentoCriação do ServidorComandos BásicosAplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 7 / 27
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
Teoria de Versionamento Controle de Versão
Agenda
1 IntroduçãoEscopoDados PessoaisObjetivos
2 Teoria de VersionamentoControle de VersãoTermos Técnicos
3 Utilização do VersionamentoCriação do ServidorComandos BásicosAplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 9 / 27
Teoria de Versionamento Controle de Versão
Versionamento de Softwarecp projeto projeto_bkp
mv projeto_bkp projeto_anteontem
cp projeto projeto_tres_anteontem
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 10 / 27
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 todasas várias revisões de conteúdo desenvolvido enquanto criamos umaaplicação[2]. Cada revisão recebe um número que representa o estado docódigo em determinado momento. Além disso, cada revisão recebe umamensagem do usuário responsável informando a causa das modi�caçõ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 umaversã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 derepositório.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 11 / 27
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 todasas várias revisões de conteúdo desenvolvido enquanto criamos umaaplicação[2]. Cada revisão recebe um número que representa o estado docódigo em determinado momento. Além disso, cada revisão recebe umamensagem do usuário responsável informando a causa das modi�caçõ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 umaversã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 derepositório.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 11 / 27
Teoria de Versionamento Termos Técnicos
Agenda
1 IntroduçãoEscopoDados PessoaisObjetivos
2 Teoria de VersionamentoControle de VersãoTermos Técnicos
3 Utilização do VersionamentoCriação do ServidorComandos BásicosAplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 12 / 27
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 paratrabalhar em nossa parte do projeto. A cópia de trabalho recebe asmodi�cações do projeto, que não são salvas enquanto não são enviadas aorepositório. Ela recebe atualizações e modi�cações de outros colaboradoresdo 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órioscriada localmente será idêntica a que está no repositório[2].
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 13 / 27
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 paratrabalhar em nossa parte do projeto. A cópia de trabalho recebe asmodi�cações do projeto, que não são salvas enquanto não são enviadas aorepositório. Ela recebe atualizações e modi�cações de outros colaboradoresdo 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órioscriada localmente será idêntica a que está no repositório[2].
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 13 / 27
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 norepositório. Se no servidor existirem novas atualizações de código queacabamos de enviar, o sistema de versionamento prioriza as suas alterações.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 14 / 27
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 norepositório. Se no servidor existirem novas atualizações de código queacabamos de enviar, o sistema de versionamento prioriza as suas alterações.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 14 / 27
Teoria de Versionamento Termos Técnicos
Estrutura Básica
Trunk
A linha principal de desenvolvimento do projeto, que sempre estará emconstante modi�cações[2]. Contém códigos ainda não testadose que nãoestão prontos.
Tags
São nomes informados para números de revisões especí�cas. Ao invés desolicitarmos 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 comouma cópia de uma revisão qualquer.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 15 / 27
Teoria de Versionamento Termos Técnicos
Estrutura Básica
Trunk
A linha principal de desenvolvimento do projeto, que sempre estará emconstante modi�cações[2]. Contém códigos ainda não testadose que nãoestão prontos.
Tags
São nomes informados para números de revisões especí�cas. Ao invés desolicitarmos 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 comouma cópia de uma revisão qualquer.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 15 / 27
Teoria de Versionamento Termos Técnicos
Estrutura Básica
Trunk
A linha principal de desenvolvimento do projeto, que sempre estará emconstante modi�cações[2]. Contém códigos ainda não testadose que nãoestão prontos.
Tags
São nomes informados para números de revisões especí�cas. Ao invés desolicitarmos 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 comouma cópia de uma revisão qualquer.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 15 / 27
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. Arquivosque 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
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. Arquivosque 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
Teoria de Versionamento Termos Técnicos
Perguntas
Pergunta
Cada envio de alterações pode receber um texto resumindo as modi�caçõesdo usuário. O que deve ser escrito neste texto?
Resposta
Deve ser escrito na mensagem o porquê das modi�cações e não o que foimodi�cado. Exemplo: �Esta versão recebeu modi�cações de autenticaçãopois estávamos com erro de acesso ao banco de dados quando o usuárionão digitava o seu nome�.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 17 / 27
Teoria de Versionamento Termos Técnicos
Perguntas
Pergunta
Cada envio de alterações pode receber um texto resumindo as modi�caçõesdo usuário. O que deve ser escrito neste texto?
Resposta
Deve ser escrito na mensagem o porquê das modi�cações e não o que foimodi�cado. Exemplo: �Esta versão recebeu modi�cações de autenticaçãopois estávamos com erro de acesso ao banco de dados quando o usuárionão digitava o seu nome�.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 17 / 27
Utilização do Versionamento Criação do Servidor
Agenda
1 IntroduçãoEscopoDados PessoaisObjetivos
2 Teoria de VersionamentoControle de VersãoTermos Técnicos
3 Utilização do VersionamentoCriação do ServidorComandos BásicosAplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 18 / 27
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á�cosWindows TortoiseSVN
http://tortoisesvn.tigris.org/
Eclipse Subclipse
http://subclipse.tigris.org/
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 19 / 27
Utilização do Versionamento Criação do Servidor
Servidor
Criação do Servidor
$ svnadmin create servername
Autenticação
Arquivo: servername/conf/svnserve.confLinha: anon-access = readLinha: auth-access = writeLinha: password-db = passwd
Inicialização do Serviço
$ svnserve -r servername -d
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 20 / 27
Utilização do Versionamento Criação do Servidor
Servidor
Criação do Servidor
$ svnadmin create servername
Autenticação
Arquivo: servername/conf/svnserve.confLinha: anon-access = readLinha: auth-access = writeLinha: password-db = passwd
Inicialização do Serviço
$ svnserve -r servername -d
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 20 / 27
Utilização do Versionamento Criação do Servidor
Servidor
Criação do Servidor
$ svnadmin create servername
Autenticação
Arquivo: servername/conf/svnserve.confLinha: anon-access = readLinha: auth-access = writeLinha: password-db = passwd
Inicialização do Serviço
$ svnserve -r servername -d
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 20 / 27
Utilização do Versionamento Criação do Servidor
Servidor
Criação do Servidor
$ svnadmin create servername
Autenticação
Arquivo: servername/conf/svnserve.confLinha: anon-access = readLinha: auth-access = writeLinha: password-db = passwd
Inicialização do Serviço
$ svnserve -r servername -d
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 20 / 27
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
Utilização do Versionamento Comandos Básicos
Agenda
1 IntroduçãoEscopoDados PessoaisObjetivos
2 Teoria de VersionamentoControle de VersãoTermos Técnicos
3 Utilização do VersionamentoCriação do ServidorComandos BásicosAplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 22 / 27
Utilização do Versionamento Comandos Básicos
Adicionar Arquivos ao Versionamento
$ svn add �lename
Enviar Modi�cações ao Repositório
$ svn commit -m �Mensagem para Relatório�
Atualizar Modi�cações Recentes
$ svn update
Atualizar para Revisão n do Repositório
$ svn update -rn
Resolver Con�itos entre Revisões
$ svn resolve �lename
Diferença entre Modi�cações e Revisão Atual
$ svn di�
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 23 / 27
Utilização do Versionamento Aplicabilidades
Agenda
1 IntroduçãoEscopoDados PessoaisObjetivos
2 Teoria de VersionamentoControle de VersãoTermos Técnicos
3 Utilização do VersionamentoCriação do ServidorComandos BásicosAplicabilidades
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 24 / 27
Utilização do Versionamento Aplicabilidades
Aplicabilidades
Patches de Software
Estudo de Modi�cações Recentes
Controle Completo do Projeto
Trabalho Concorrente entre Pessoas
Instalação de Módulos no ApacheUtilização de Repositórios Online
Google CodeSourceForge
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 25 / 27
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., 1stedition, February 2005.
CAMARGO (UNISINOS) SVN 6 de dezembro de 2010 26 / 27
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