controle de versão svn e tortoise svn nicole sultanum

25
Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Upload: internet

Post on 17-Apr-2015

131 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Controle de VersãoSVN e Tortoise SVN

Nicole Sultanum

Page 2: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Sumário

• Controle de versão: o que é?• SVN• Tortoise SVN• Operações básicas

Page 3: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Controle de versão: o que é?

Software

Tempo

Criadas as classes básicas X, Y, e Z

Classe X recebe novos atributos

Adicionadas classes de persistência (arquivo)

Interface gráfica principal desenvolvida

Page 4: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Controle de versão: o que é?

Tempo

Versão 1.0(arquivos)

Desenvolvimento Solução MySQL

Desenvolvimento Versão Linux (arquivos)

Page 5: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Controle de versão: o que é?

Software

Page 6: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Controle de versão: o que é?

• Manutenção do histórico de modificações• Possibilidade de criação de linhas paralelas de

desenvolvimento• Controle de acesso concorrente

Page 7: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

SVN

• Sistema para Controle de Versão

• Propósito geral• Free• ‘Evolução’ do CVS

• Usado por...– Google– Sourceforge– Tigris.org– ...

Page 8: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

SVN

Alterações locais

Checkout

Commit

Versão 1Versão 2

Alterações locais

Update

Versão 3

Commit

Import

Page 9: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Tortoise SVN

• Cliente SVN para Windows• Funciona como uma espécie de plug-in do

Windows Explorer• Fácil operação

Page 10: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Algumas operações básicas

• Import• Checkout• Update

• Conflitos• Merge

• Commit• Add• Delete• Rename

Page 11: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Import

• Iniciar o versionamento de um conjunto de arquivos

• ‘Upload’ para o SVN

Page 12: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Checkout

• Importa o estado atual do repositório para uma cópia local, sob controle de versão

Page 13: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Update

• Atualiza o estado da cópia local para concordar com mudanças do repositório:– Adicionando...– removendo...– Modificando arquivos

AddedUpdatedMerged

Conflicted

Page 14: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Update

• Added– Novo arquivo adicionado

• Updated– Arquivo modificado no servidor, não modificado localmente

• Merged– Arquivo modificado no servidor e modificado localmente, porém em

locais distintos

• Conflicted– Arquivo modificado no servidor e modificado localmente, nos mesmos

locais– Exige intervenção manual

Page 15: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Duplo clique no arquivo em conflito

Resolvendo Conflitos

Clique c/botão direito no conflito, aqui

Salvar Marcar arquivo em conflito como ‘resolvido’

Quando terminar de editar todos os conflitos...

Page 16: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Commit

• Postar suas modificações no repositório oficial

Page 17: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Commit

• Regras gerais:– Sempre dê update imediatamente antes de dar

commit– Não dê commit se sua versão não está

compilando/rodando– Seja consciente: descreva as atividades realizadas

por você naquele commit– Antes de dar commit, Verifique se você não

esqueceu de adicionar nenhum arquivo novo

Page 18: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Add

• Adicionar arquivos/pastas ao versionamento• A modificação é válida a partir do próximo

commit dado

Page 19: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Add

• O que NÃO deve ser versionado:– bin, obj, dlls, .thumb

• O SVN controlará as mudanças nestes arquivos. Não queremos isso!– Toda vez que um projeto for recompilado, o SVN

vai acusar que o arquivo .dll foi modificado– Indicação de modificação, mesmo sem nenhuma

alteração significativa do projeto (código fonte)– Pode dar conflitos desnecessários

Page 20: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Delete

• Remover arquivos do repositório

Page 21: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Delete

• Remover arquivos do versionamento – Copiar o arquivo para uma pasta– SVN:Delete– Re-copiar o arquivo da pasta temporária para a

pasta original

Page 22: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Rename

• Não existe uma operação atômica para rename– Copia pastas e arquivos com o nome modificado

• Apaga arquivos com nome antigo• Para pastas, só deleta da cópia local após commit

Page 23: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Recomendações gerais

• Cuidado ao realizar muitas operações de delete/rename sobre o mesmo arquivo– Erros inesperados podem ocorrer

Page 24: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Links

• [Revision Control - Wikipedia]http://en.wikipedia.org/wiki/Revision_control• [Subversion – Site oficial]http://subversion.tigris.org/• [Tortoise SVN – Site oficial]http://tortoisesvn.tigris.org/

Page 25: Controle de Versão SVN e Tortoise SVN Nicole Sultanum

Controle de VersãoSVN e Tortoise SVN

Nicole Sultanum