Introdu o ao subversion
This presentation is the property of its rightful owner.
Sponsored Links
1 / 39

Introdução ao Subversion PowerPoint PPT Presentation


  • 179 Views
  • Uploaded on
  • Presentation posted in: General

Introdução ao Subversion. Repositório de diretórios e arquivos. Roteiro. Introdução Arquitetura do subversion Principais comandos Fluxo de trabalho Boas práticas e bibliografia. Subversion. Introdução. O que é subversion?.

Download Presentation

Introdução ao Subversion

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Introdu o ao subversion

Introdução ao Subversion

Repositório de diretórios e arquivos


Roteiro

Roteiro

  • Introdução

  • Arquitetura do subversion

  • Principais comandos

  • Fluxo de trabalho

  • Boas práticas e bibliografia

[email protected]


Subversion

Subversion

Introdução

[email protected]


O que subversion

O que é subversion?

  • Subversion é uma ferramenta de repositório de diretórios e arquivos (binários ou texto) que permite guardar o histórico das mudanças

    • Repositório – guardar e recuperar

    • Histórico – define quem fez, quando e o que fez

[email protected]


Qual a sua finalidade

Qual a sua finalidade?

  • Permitir aos desenvolvedores sincronizar o seu trabalho (código fonte, documentos, diagramas...)‏

  • Rastrear as mudanças ao longo do tempo

  • Permitir diversos “braços” da mesma versão

    • Braços são trabalhos em paralelos

[email protected]


Subversion1

Subversion

Arquitetura

[email protected]


Como funciona 1

Como funciona? (1)

Client Interface

Repository Interface

FSFS

Apache

mod_dav

GUIclient

apps

Repository

access

mod_dav_svn

DAV

Internet

(Any TCP/IP Network)

Client

Library

svnserve

SVN

Commandline

client apps

Subversion

Repository

Local

Working Copy Management

Library

Berkley DB

Fonte: SubTrain

[email protected]


Como funciona 2

Como funciona? (2)

  • Servidor Subversion

    • Armazena os arquivos e diretórios

      • Normalmente códigos fontes, arquivos de configurações, bibliotecas, documentos de projeto

      • Permite ver o histórico por arquivo

        • Usuário e data de modificação, observação sobre a mudança e – principalmente – o conteúdo

      • Não permite edição direta do arquivo

    • Normalmente o repositório esta associado a um URL

      • Pode ser acessado via HTTP(S), SVN e Arquivo compartilhado na rede

      • Quando utilizando a internet, acesso normal via HTTPS ou SVN+SSH

[email protected]


Como funciona 3

Como funciona? (3)

  • Cliente Subversion

    • Recupera arquivos e diretórios do servidor, criando uma cópia local

    • Como mantém uma cópia local

      • As mudanças são realizadas em modo desconectado do servidor

      • As mudanças são locais, não no servidor

    • Para modificar a cópia do servidor é necessário enviar (commit) as alterações

[email protected]


Quais s o os clientes subversion

Quais são os clientes subversion?

  • Navegador HTML (unicamente pelo Apache+DAV)

  • Eclipse IDE

    • Subclipse, Subversive

  • Linux/UNIX

    • RapidSVN – Tigris client

    • eSvn – Qt client

    • kdesvn – KDE client

    • ViewCVS – web front-end

  • Windows

    • TortoiseSVN – Windows explorer integration

    • Ankhsvn - Visual Studio integration

[email protected]


Organiza o interna do reposit rio

Organização interna do repositório

Versionamento por módulos

Versionamento pelo projeto

Root

Root

trunk

Project 1

Project 1

trunk

tags

Project 2

branches

tags

Project 1

Project 2

Project 2

trunk

branches

tags

Project 1

branches

Project 2

[email protected]


O que s o thrunk tags e branches

O que são thrunk, tags e branches?

Root

Project 1

Principal linha de desenvolvimento

trunk

tags

Releases

branches

Preparação de releases, correção de bug

Project 2

trunk

tags

branches

[email protected]


Subversion2

Subversion

Principais comandos

[email protected]


Principais comandos

Principais comandos

  • Importar arquivos/diretórios para o repositório

  • Baixar arquivos/diretórios do repositório

    • Novos – checkout

    • Antigos – update

  • Verificar mudanças de arquivos/diretórios

  • Notificar resolução de conflito de modificações

  • Enviar mudanças locais para o repositório

  • Adicionar, apagar e mover arquivos/diretórios

  • Reverter mudanças a partir do histórico

  • Bloquear/desbloquear arquivos

  • Ver histórico de mudanças

[email protected]


Verifica o de mudan as pode retornar

Verificação de mudanças pode retornar

  • A representação visual depende do cliente

  • Contudo os principais estados são

    • O arquivo/diretório será adicionado no repositório (só existe localmente)

    • O arquivo está com conflito

      • A versão local foi modificada

      • Mas existe uma versão mais nova no repositório que a última versão local recuperada

    • O arquivo/diretório será apagado no repositório

      • O arquivo/diretório foi apagado localmente mas existe no repositório enquanto não for notificado

    • O conteúdo do arquivo no repositório foi modificado

    • O arquivo/diretório será renomeado no repositório

    • O arquivo/diretório não está sendo controlado pelo subversion

    • O arquivo/diretório foi configurado para ser ignorado pelo subversion

[email protected]


Algumas considera es sobre bloqueio de arquivo

Algumas considerações sobre bloqueio de arquivo

  • A solicitação de bloqueio retornará com erro se o arquivo já estiver bloqueado

  • Dependendo do cliente utilizado

    • A modificação do conteúdo do arquivo é bloqueada automaticamente

    • Ou a modificação pode ser realizada contudo o envio das modificações retornará erro

[email protected]


Subversion3

Subversion

Fluxo de trabalho

[email protected]


Fluxo de trabalho

Fluxo de trabalho

  • Existe 2 tipos de fluxos de trabalho

    • O fluxo otimista

      • Otimista porque parte do pressuposto que apenas um desenvolvedor está modificando um determinado arquivo

      • Quando acontece de mais de uma modificação simultânea, existe a necessidade de intervenção humana para juntar as modificações e depois colocar no repositório

    • O fluxo pessimista

      • Aceita a possibilidade que mais de um desenvolvedor irá tentar modificar um mesmo arquivo

      • Para evitar o acesso simultâneo, trabalha com o bloqueio e desbloqueio do arquivo

[email protected]


Fluxo otimista

Repositório

Subversion

Fluxo otimista

[email protected]


Resumindo as atividades 1

Resumindo as atividades (1)

  • Baixar atualizações

    • Se projeto novo, deve ser realizado um checkout

    • Se projeto existente, realizar um update

  • Realizar modificações

    • Considerando código fonte, desenvolver e testar

      • Só considerar modificação terminada quando teste realizado com sucesso

  • Verificar novas atualizações

    • Verificar se existe novas atualizações

    • Caso exista, baixa as novas atualizações

[email protected]


Resumindo as atividades 2

Resumindo as atividades (2)

  • Resolve as diferenças, caso exista

    • Através de algum editor, junta as modificações

      • O subversion cria para você a estrutura

        • Arquivo.extensao – seu arquivo

        • Arquivo.extensao.mime – seu arquivo mais as últimas modificações (utiliza tags no arquivo)

        • Arquivo.extensao.rVersaoAntiga

        • Arquivo.extensao.rVersaoNova

    • Notifica ao repositório que resolveu as diferenças

  • Envia as modificações

    • Envia para o repositório as modificações do arquivo

[email protected]


Fluxo pessimista

Repositório

Subversion

Fluxo pessimista

[email protected]


Resumindo as atividades 11

Resumindo as atividades (1)

  • Baixar atualizações

    • Se projeto novo, deve ser realizado um checkout

    • Se projeto existente, realizar um update

  • Bloqueia arquivo

    • Notifica bloqueio de arquivo no repositório

  • Realizar modificações

    • Considerando código fonte, desenvolver e testar

      • Só considerar modificação terminada quando teste foi realizado com sucesso

  • Envia modificações

    • Além de enviar modificações para o repositório, notifica que o arquivo está liberado

[email protected]


Um lembrete para o fluxo pessimista

Um lembrete para o fluxo pessimista

  • Quando terminar o horário de trabalho e não obtiver sucesso na execução dos testes

  • Deverá ser liberado (desbloqueado) o arquivo no repositório

[email protected]


Subversion4

Subversion

Status das cópais de trabalho

[email protected]


C pias de trabalho

Cópias de Trabalho

  • As cópias de trabalho podem estar em 4 (estados) distintos

    • Não-modificado e Atualizado

    • Modficado e Atualizado

    • Não-modificado e Desatualizado

    • Modificado e Desatualizado

Revisão 10

Revisão 11

Revisão 12

[email protected]


C pias de trabalho desatualizadas

Cópias de Trabalho Desatualizadas

Cliente 1

Cópia não-modificada e desatualizada

Cliente 2

Cópia modificada e desatualizada

commit

Não altera o repositório

update

Atualiza a cópia de trabalho para a versão mais nova

Revisão 11

Revisão 11

commit

É indicado um erro, o arquivo deve ser atualizado primeiro

update

Deverá ser feita uma junção (merge) entre a cópia e a versão atual do servidor

Revisão 10

Revisão 11

Revisão 12

[email protected]


C pias de trabalho atualizadas

Cópias de Trabalho Atualizadas

Cliente 1

Cópia não-modificada e atualizada

Cliente 2

Cópia modificada e atualizada

commit e update

Não alteram o repositório nem a cópia local

update

Não altera a cópia local

commit

adiciona a alteração, gerando uma nova revisão

Revisão 10

Revisão 11

Revisão 12

Revisão 13

[email protected]


Subversion5

Subversion

Caso 1: Utilizando o cliente svn

[email protected]


Criando o reposit rio

Criando o repositório

  • Utilizando o comando svnadmin no servidor

  • svnadmin é uma ferramenta administrativa

    • Configuração

    • Monitoramento

    • Manutenção do repositório.

  • svnadmin acessa diretamente o repositório

  • Deve ser executado na máquina que possui o repositório

Repositorio_svn

[email protected]


Adi o de conte do ao reposit rio

Adição de conteúdo ao repositório

  • Utilizando o comando svnimport no cliente

    • É uma maneira rápida de copiar um conteúdo (arquivos e diretórios) no repositório, criando diretórios intermediários quando necessário.

    • Este comando não requer cópias de trabalho, e seus arquivos são commitados no repositório.

    • É indicado quando se tem um diretório que se deseja controlar sua versão.

[email protected]


Adi o de conte do ao reposit rio1

Adição de conteúdo ao repositório

  • É importante ressaltar que, após o import o diretório não se transforma em uma área de trabalho (working copy) com as cópias de trabalho. É necessário fazer um checkout.

Root

projetocpp

trunk

src

[email protected]


Realizando o checkout

Realizando o checkout

  • Cria uma cópia de trabalho no cliente

  • Pode ser executado através do comando svn checkout

  • Admite alguns parâmetros, dentro os quais o que indica uma revisão específica que se deseja recuperar

Root

projetocpp

trunk

src

Cópia de trabalho

[email protected]


Edi o verifica o do status

Edição, verificação do status

  • Após a edição das cópias de trabalho é algumas vezes desejável recuperar o status de cada arquivo, é possível observar através do comando svn status

  • Verificando as diferenças entre a cópia de trabalho e o repositório

[email protected]


Atualiza o do reposit rio

Atualização do repositório

  • Através do comando svn commit são enviadas as alterações feitas nas cópias de trabalho

  • Verificando o status

[email protected]


Subversion6

Subversion

Boas práticas e bibliografia

[email protected]


Boas pr ticas 1

Boas práticas (1)

  • Não envie um único arquivo quando sua mudança (intenção) reflete em mais de um arquivo

  • Em projetos novos, envie o diretório completo a partir (raiz)

  • Tenha certeza que suas mudanças refletem um propósito simples, como resolver um erro em específico, adicionar uma determinada nova característica

  • Mensagens de registro de mudança devem descrever a modificação do ponto de vista técnico

[email protected]


Boas pr ticas 2

Boas práticas (2)

  • Se utilizando uma ferramenta de planejamento e gerência, marque o identificador do Ticket/Issue/Bug

  • Não escreva mensagens como

    • Linha 4 removida

    • Inserido a linha 10 no arquivo …

  • Equipes organizadas mantém políticas de mensagens de registro no repositório

[email protected]


Bibliografia

Bibliografia

  • Subversion Home Page

    • http://subversion.tigris.org/

  • Version Control with Subversion

    • http://svnbook.org/

  • SubTrain – SVN User Training

    • http://www.polarion.org/index.php?page=overview&project=subtrain

[email protected]


  • Login