Subversion (SVN) com o TortoiseSVN
Paulo Renato
Conteúdo
●Introdução
●Conceitos Básicos
●Fluxo de trabalho
●Boas Práticas
Conceitos Básicos
Repositório
O repositório é um servidor de arquivos versionado, com ele é possível
visualizar cada alteração feita em determinado arquivo ou diretório.
Estrutura do repositório:
●trunk: armazena a versão funcional mais recente de desenvolvimento.
●branch: armazena versões de desenvolvimento paralelas baseadas no
trunk. Deve ser utilizado para mudanças que podem afetar a integridade do
trunk.
●tag: armazena uma “cópia” do repositório em uma determinada revisão,
para facilitar a localização de versões. Cada tag possui um nome único que
a identifica.
Conceitos Básicos
Cópia de Trabalho
Todo desenvolvedor tem sua própria cópia de trabalho, informar a url do
repositório e a pasta na qual o projeto será criado.
Menu → SVN Checkout.
Revisão
Número que identifica cada uma das
alterações ou conjunto de alterações
realizadas em um repositório. Tal número
é obtido a partir de uma sequência a qual
é compartilhada por todos os diretórios
do repositório.
Conceitos Básicos
HEAD
É a revisão mais recente do repositório.
Update
Atualização da cópia local para a revisão atual do repositório.
Menu → SVN Update
Commit
Envia as modificações realizadas localmente para o servidor.
Menu → SVN Commit
Revert
Desfaz todas as modificações realizadas no arquivo local desde a última atualização
(Obs. Não irá desfazer as mudanças já enviadas para o servidor).
Menu → TortoiseSVN → Revert
Switch
Aponta a cópia local para outro branch/tag.
Menu → TortoiseSVN → Switch
Conceitos Básicos
Status da cópia local
Normal: O arquivo está compatível com
a última revisão atualizada(Obs. Isto
não significa que o repositório está
atualizado).
Modified: A cópia local possui
modificações, para ver as modificações
Menu → TortoiseSVN → Diff.
Conflicted: As modificações locais estão em conflito com as modificações do
repositório. Para editar os conflitos TortoiseSVN → Edit Conflicts e depois para marcá-
los como resolvido Menu → TortoiseSVN → Resolved.
Conceitos Básicos
Gerenciamento dos arquivos
Todo o gerenciamento dos arquivos (Ex. Renomear, remover, adicionar, mover, etc)
deve ser realizado utilizando o Tortoise.
Selecione o arquivo e escolha a opção desejada:
Menu → TortoiseSVN → Add
Menu → TortoiseSVN → Rename
Menu → TortoiseSVN → Delete
Para mover arquivos é necessário arrastar e soltar o arquivo com botão direito do
mouse e selecionar a opção: SVN Move versioned item(s) here.
trunk
branch
tag
Branch para uma
funcionalidade
A funcionalidade está pronta
o branch é reintegrado
Criação da tag
Projeto-1.0.0
Pequenas
modificações
Fluxo de trabalho
Branch de establilização
Fluxo de trabalho
Criação de branch/tag
Selecione o repositório:
Menu → TortoiseSVN → Branch/Tag
Especificar o caminho no campo To path:
branches/tdk_data_access
Adicionar a mensagem informando o que
para que serve este branch/tag.
Apontar a partir de qual revisão deve ser
criado o branch.
Create copy in the repository from:
HEAD
Habilitar a opção Switch working copy to new branch para
apontar automaticamente a cópia local para o novo branch
Fluxo de trabalho
Reintegrar um branch para o trunk
Selecione a cópia local (Obs. Deve estar apontando para o trunk)
Menu → TortoiseSVN → Merge
Selecionar o opção: Reintegrate a branch → Next
Apontar qual o branch deve ser reintegrado:
https://svn.funcate.org.br/tdk/branches/tdk_data_access → Next
E depois Merge...
Para resolver os conflitos:
É possível escolher qual cópia manter,
ou editar os blocos em conflito.
Edição de conflitos
Modificação na mesma linha nos dois arquivos.
Possíveis soluções:
● Escolher o bloco de um dos arquivos;
● Adicionar um bloco após o outro;
● Editar o texto manualmente com uma junção dos dois blocos.
Arquivo Remoto Arquivo Local
Arquivo resultante do Merge
Fim.
Muito obrigado!
Informações para contato
E-mail: paulo.oliveira@funcate.org.br
Tel.: +55 12 3925 1395
Site: www.funcate.org.br

SVN com TortoiseSVN

  • 1.
    Subversion (SVN) como TortoiseSVN Paulo Renato
  • 2.
  • 3.
    Conceitos Básicos Repositório O repositórioé um servidor de arquivos versionado, com ele é possível visualizar cada alteração feita em determinado arquivo ou diretório. Estrutura do repositório: ●trunk: armazena a versão funcional mais recente de desenvolvimento. ●branch: armazena versões de desenvolvimento paralelas baseadas no trunk. Deve ser utilizado para mudanças que podem afetar a integridade do trunk. ●tag: armazena uma “cópia” do repositório em uma determinada revisão, para facilitar a localização de versões. Cada tag possui um nome único que a identifica.
  • 4.
    Conceitos Básicos Cópia deTrabalho Todo desenvolvedor tem sua própria cópia de trabalho, informar a url do repositório e a pasta na qual o projeto será criado. Menu → SVN Checkout. Revisão Número que identifica cada uma das alterações ou conjunto de alterações realizadas em um repositório. Tal número é obtido a partir de uma sequência a qual é compartilhada por todos os diretórios do repositório.
  • 5.
    Conceitos Básicos HEAD É arevisão mais recente do repositório. Update Atualização da cópia local para a revisão atual do repositório. Menu → SVN Update Commit Envia as modificações realizadas localmente para o servidor. Menu → SVN Commit Revert Desfaz todas as modificações realizadas no arquivo local desde a última atualização (Obs. Não irá desfazer as mudanças já enviadas para o servidor). Menu → TortoiseSVN → Revert Switch Aponta a cópia local para outro branch/tag. Menu → TortoiseSVN → Switch
  • 6.
    Conceitos Básicos Status dacópia local Normal: O arquivo está compatível com a última revisão atualizada(Obs. Isto não significa que o repositório está atualizado). Modified: A cópia local possui modificações, para ver as modificações Menu → TortoiseSVN → Diff. Conflicted: As modificações locais estão em conflito com as modificações do repositório. Para editar os conflitos TortoiseSVN → Edit Conflicts e depois para marcá- los como resolvido Menu → TortoiseSVN → Resolved.
  • 7.
    Conceitos Básicos Gerenciamento dosarquivos Todo o gerenciamento dos arquivos (Ex. Renomear, remover, adicionar, mover, etc) deve ser realizado utilizando o Tortoise. Selecione o arquivo e escolha a opção desejada: Menu → TortoiseSVN → Add Menu → TortoiseSVN → Rename Menu → TortoiseSVN → Delete Para mover arquivos é necessário arrastar e soltar o arquivo com botão direito do mouse e selecionar a opção: SVN Move versioned item(s) here.
  • 8.
    trunk branch tag Branch para uma funcionalidade Afuncionalidade está pronta o branch é reintegrado Criação da tag Projeto-1.0.0 Pequenas modificações Fluxo de trabalho Branch de establilização
  • 9.
    Fluxo de trabalho Criaçãode branch/tag Selecione o repositório: Menu → TortoiseSVN → Branch/Tag Especificar o caminho no campo To path: branches/tdk_data_access Adicionar a mensagem informando o que para que serve este branch/tag. Apontar a partir de qual revisão deve ser criado o branch. Create copy in the repository from: HEAD Habilitar a opção Switch working copy to new branch para apontar automaticamente a cópia local para o novo branch
  • 10.
    Fluxo de trabalho Reintegrarum branch para o trunk Selecione a cópia local (Obs. Deve estar apontando para o trunk) Menu → TortoiseSVN → Merge Selecionar o opção: Reintegrate a branch → Next Apontar qual o branch deve ser reintegrado: https://svn.funcate.org.br/tdk/branches/tdk_data_access → Next E depois Merge... Para resolver os conflitos: É possível escolher qual cópia manter, ou editar os blocos em conflito.
  • 11.
    Edição de conflitos Modificaçãona mesma linha nos dois arquivos. Possíveis soluções: ● Escolher o bloco de um dos arquivos; ● Adicionar um bloco após o outro; ● Editar o texto manualmente com uma junção dos dois blocos. Arquivo Remoto Arquivo Local Arquivo resultante do Merge
  • 12.
    Fim. Muito obrigado! Informações paracontato E-mail: paulo.oliveira@funcate.org.br Tel.: +55 12 3925 1395 Site: www.funcate.org.br