André Silva Rodrigues Diretor de Tecnologia. O que é subversion? Como subversion funciona?...

Post on 22-Apr-2015

105 views 2 download

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