André Silva Rodrigues Diretor de Tecnologia
O que é subversion? Como subversion funciona? 12/4/2015WorkSet 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 12/4/2015WorkSet 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) 12/4/2015WorkSet Indo 4
Repositório Cópia de Trabalho Revisão Palavras-chave de Revisão Trunk Branch Tag 12/4/2015WorkSet 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 12/4/2015WorkSet Indo 6
Cópia de Trabalho 12/4/2015WorkSet 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 12/4/2015WorkSet 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) 12/4/2015WorkSet 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 12/4/2015WorkSet 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/videoconferencia 12/4/2015WorkSet 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 12/4/2015WorkSet Indo 12
Problema em Compartilhar Método Lock-Modify-Unlock Método Copy-Modify-Merge Quando Lock é Necessário? 12/4/2015WorkSet Indo 13 Controlando as Versões
Problema em Compartilhar 12/4/2015WorkSet Indo 14
Método Lock-Modify-Unlock 12/4/2015WorkSet Indo 15
Método Copy-Modify-Merge 12/4/2015WorkSet Indo 16
Método Copy-Modify-Merge 12/4/2015WorkSet 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 12/4/2015WorkSet Indo 18