Controle de Versão SVN e Tortoise SVN Nicole Sultanum
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