Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa

Preview:

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

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

Recommended