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,
eZ
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 3
1
2
Update
Import
Checkout
Commit
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...
Added
–
removendo...
Updated
– Modificando arquivos
Merged
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
Quando terminar de editar todos os conflitos...
Resolvendo 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
Download

Ferramentas de Controle de Versão SVN e Tortoise SVN