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
Controle de versão: o que é? Software 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 Tempo
Controle de versão: o que é? Desenvolvimento Solução MySQL Versão 1.0 (arquivos) Desenvolvimento Versão Linux (arquivos) Tempo
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 Versão 2 Versão 3 Versão 1 Servidor SVN Servidor SVN Servidor SVN Update Import Commit Checkout Alterações locais Commit Alterações locais
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 Added Updated Merged Conflicted
Update Added Updated Merged Conflicted Novo arquivo adicionado 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
Resolvendo Conflitos Quando terminar de editar todos os conflitos... Salvar Marcar arquivo em conflito como ‘resolvido’ Duplo clique no arquivo em conflito Clique c/botão direito no conflito, aqui
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ão SVN e Tortoise SVN Nicole Sultanum