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