O documento resume os principais conceitos e fluxo de trabalho do Subversion (SVN) com o TortoiseSVN. Ele explica termos como repositório, cópia de trabalho, revisão, branch e tag, além de descrever como fazer checkouts, commits, updates e resolução de conflitos. O fluxo de trabalho típico envolve a criação de branches para novas funcionalidades e reintegração dos mesmos ao trunk após a conclusão.
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 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.
5. 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
6. 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.
7. 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.
9. 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
10. 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.
11. 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