37

Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

Embed Size (px)

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.

Citation preview

Page 1: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 2: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 3: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 4: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 5: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 6: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 7: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 8: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 9: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 10: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 11: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 12: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 13: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 14: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 15: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 16: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 17: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 18: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 19: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 20: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 21: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 22: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 23: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 24: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 25: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 26: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 27: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 28: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 29: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 30: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 31: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 32: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 33: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 34: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 35: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 36: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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

Page 37: Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

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