controle de versão svn e tortoise svn nicole sultanum

Post on 17-Apr-2015

131 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Controle de VersãoSVN e Tortoise SVN

Nicole Sultanum

Sumário

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

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

Controle de versão: o que é?

Tempo

Versão 1.0(arquivos)

Desenvolvimento Solução MySQL

Desenvolvimento Versão Linux (arquivos)

Controle de versão: o que é?

Software

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

SVN

• Sistema para Controle de Versão

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

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

SVN

Alterações locais

Checkout

Commit

Versão 1Versão 2

Alterações locais

Update

Versão 3

Commit

Import

Tortoise SVN

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

Windows Explorer• Fácil operação

Algumas operações básicas

• Import• Checkout• Update

• Conflitos• Merge

• Commit• Add• Delete• Rename

Import

• Iniciar o versionamento de um conjunto de arquivos

• ‘Upload’ para o SVN

Checkout

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

Update

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

AddedUpdatedMerged

Conflicted

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

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...

Commit

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

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

Add

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

commit dado

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

Delete

• Remover arquivos do repositório

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

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

Recomendações gerais

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

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/

Controle de VersãoSVN e Tortoise SVN

Nicole Sultanum

top related