André Silva Rodrigues Diretor de Tecnologia. O que é subversion? Como subversion funciona?...
Transcript of André Silva Rodrigues Diretor de Tecnologia. O que é subversion? Como subversion funciona?...
André Silva RodriguesDiretor de Tecnologia
O que é subversion?
Como subversion funciona?
11/04/23WorkSet Indo 2
Introdução
O que é Subversion?
Abreviado por: SVN Sistema de controle de versão Projetado para substituir o CVS,
outro sistema de controle de versão
11/04/23WorkSet Indo 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)
11/04/23WorkSet Indo 4
Repositório
Cópia de Trabalho
Revisão
Palavras-chave de Revisão
Trunk
Branch
Tag
11/04/23WorkSet Indo 5
Definições
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
11/04/23WorkSet Indo 6
Cópia de Trabalho
11/04/23WorkSet Indo 7
Também conhecida como Working Copy
Cópia do projeto no servidor, mantida localmente
Alterações feitas são depois enviadas ao servidor
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
11/04/23WorkSet Indo 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)
11/04/23WorkSet Indo 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
11/04/23WorkSet Indo 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/
videoconferencia11/04/23WorkSet Indo 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
11/04/23WorkSet Indo 12
Problema em Compartilhar
Método Lock-Modify-Unlock
Método Copy-Modify-Merge
Quando Lock é Necessário?
11/04/23WorkSet Indo 13
Controlando as Versões
Problema em Compartilhar
11/04/23WorkSet Indo 14
Método Lock-Modify-Unlock
11/04/23WorkSet Indo 15
Método Copy-Modify-Merge
11/04/23WorkSet Indo 16
Método Copy-Modify-Merge
11/04/23WorkSet Indo 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
11/04/23WorkSet Indo 18