André Silva Rodrigues
Diretor de Tecnologia
CONTROLE DE VERSÕES COM
SUBVERSION
Introdução
O que é subversion?
Como subversion funciona?
WorkSet Indo
05/11/2015
2
O que é Subversion?
 Abreviado por: SVN
 Sistema de controle de versão
 Projetado para substituir o CVS, outro
sistema de controle de versão
WorkSet Indo
05/11/2015
3
Como Subversion funciona?
 O servidor contém um repositório central de
código
 Usa-se um cliente SVN para fazer download
de uma cópia do fonte (checkout)
 Pode-se adicionar, editar ou excluir arquivos
do repositório local, e após isso enviar as
alterações ao servidor (commit)
WorkSet Indo
05/11/2015
4
Definições
Repositório
Cópia de Trabalho
Revisão
Palavras-chave de Revisão
Trunk
Branch
Tag
WorkSet Indo
05/11/2015
5
Repositório
 Local onde se guarda o projeto
 A diferença entre um repositório e um
diretório comum é que o primeiro é uma
pasta controlada pelo Subversion
 Geralmente inclui um diretório chamado de
“/.svn” ou “/_svn”, que contém as
informações de controle
WorkSet Indo
05/11/2015
6
Cópia de Trabalho
 Também conhecida como Working Copy
 Cópia do projeto no servidor, mantida
localmente
 Alterações feitas são depois enviadas ao
servidor
WorkSet Indo
05/11/2015
7
Revisão
 Numeração utilizada pelo SVN para controle
das versões
 Cada alteração incrementa o número de
revisão
 Possibilidade de utilizar uma versão mais
antiga
WorkSet Indo
05/11/2015
8
Palavras-chave de Revisão
 HEAD
 A ultima ou mais nova revisão no repositório
 BASE
 Número da revisão de um item na cópia de trabalho,
desconsiderando modificações locais
 COMMITTED
 A revisão maior ou igual a BASE em que um item foi
modificado
 PREV
 Revisão imediatamente anterior à ultima revisao em
que um item foi modificado. (COMMITTED-1)
WorkSet Indo
05/11/2015
9
Trunk
 Linha principal de desenvolvimento
 Aqui ficam os arquivos que serão utilizados
no diariamente
 Devem ser adicionadas apenas alterações
previstas no projeto
 Exemplo:
 svn://.../ensino_distancia/trunk
WorkSet Indo
05/11/2015
10
Branch
 Linha de desenvolvimento de novas funções
 Usado caso alguém queira adicionar uma
nova funcionalidade não prevista no projeto
 Copia-se tudo de trunk para uma pasta
dentro de branch
 Exemplo:
 svn://.../ensino_distancia/branch/videoconferencia
WorkSet Indo
05/11/2015
11
Tag
 Pontos de referência no desenvolvimento
 Utilizado para guardar snapshots da aplicação
 A cada versão ou correção de bugs deve ser
adicionada um snapshot
 Exemplo:
 svn://.../ensino_distancia/tag/versao_1
 svn://.../ensino_distancia/tag/versao_1.1
 svn://.../ensino_distancia/tag/versao_1.2
WorkSet Indo
05/11/2015
12
Controlando as Versões
Problema em Compartilhar
Método Lock-Modify-Unlock
Método Copy-Modify-Merge
Quando Lock é Necessário?
WorkSet Indo
05/11/2015
13
Problema em Compartilhar
WorkSet Indo
05/11/2015
14
Método Lock-Modify-Unlock
WorkSet Indo
05/11/2015
15
Método Copy-Modify-Merge
WorkSet Indo
05/11/2015
16
Método Copy-Modify-Merge
WorkSet Indo
05/11/2015
17
Quando Lock é Necessário?
 Considerado prejudicial para a colaboração
 Alteração de arquivos não textuais (imagens)
 Motivos
 Merge não funciona em tais arquivos
 Evita desperdícios de tempo
 Alterações seriam descartadas
WorkSet Indo
05/11/2015
18
Download

070626_SVN_Basico - Desenvolvido com Futurepages