Prognus Software Livre Airton Bordin Junior 07/04/2017 Subversion - SVN Prognus Software Livre airton@prognus.com.br Prognus Software Livre Airton Bordin Junior
Subversion - SVN Sistema de controle de versão (2000); 07/04/2017 Sistema de controle de versão (2000); Substituto do CVS algumas limitações. Livre/open-source; Prognus Software Livre airton@prognus.com.br
Quadro comparativo Funcionalidade CVS SVN Commit atômico Renomeações e cópias de arquivos e diretórios Rastreamento de fusões (merge) Permissões de repositório Documentação disponível Portabilidade Open source Interfaces gráficas Suporta grande repositório 07/04/2017 Prognus Software Livre airton@prognus.com.br
Subversion - SVN 07/04/2017 Prognus Software Livre airton@prognus.com.br Comparação de performance de sistemas de controle de versão utilizando o software finalbuilder
Subversion - SVN Projeto Repositório Apache Software Foundation http://svn.apache.org/repos/asf/ Debian http://svn.debian.org/ Zope http://svn.zope.org/ KDE http://websvn.kde.org/ Mono http://mono.myrealbox.com/ Conectiva Linux https://moin.conectiva.com.br/RepositorySystem 07/04/2017 Prognus Software Livre airton@prognus.com.br
O repositório 07/04/2017 Prognus Software Livre airton@prognus.com.br
Comandos básicos Comando Atalho Ação Exemplo checkout co Faz um download do repositório e cria uma cópia de trabalho svn co https://dev.prognus.com.br/svn-expresso/expresso/trunk status st Mostra alterações da cópia de trabalho svn status commit ci Envia alterações da cópia de trabalho para o servidor svn ci -m "Informação sobre commit" add Adiciona novos arquivos ao repositório svn add foo.c delete rm Remove arquivos do repositório svn del foo.c revert volta arquivo da cópia de trabalho para ultima versão baixada do repositório svn revert -R1177 . update up Atualiza para ultima versão do repositório svn update help Mostra ajuda svn help 07/04/2017 Prognus Software Livre airton@prognus.com.br
Outros comandos Comando Atalhos Ação Exemplo export faz download do repositório sem versionar a cópia svn export https://dev.prognus.com.br/svn-expresso/expresso/trunk . copy cp copia um diretório/arquivo do repositório svn cp https://dev.prognus.com.br/svn-expresso/expresso/trunk https://dev.prognus.com.br/svn-expresso/expresso/tags/expresso/2.0-prognus3.1 move mv move um diretório/arquivo do repositório info mostra informação sobre repositório svn info diff mostra um diff svn diff -r15:40 log mostra o histórico de alterações svn log -v expressoMail1_2/index.php list lista os arquivos no repositório svn list https://dev.prognus.com.br/svn-expresso/expresso/trunk 07/04/2017 Prognus Software Livre airton@prognus.com.br
Cópias de trabalho x Repositório Para cada arquivo o SVN registra duas informações Em qual revisão seu arquivo local é baseado Data e hora da ultima vez que a cópia local foi atualizada a partir do repositório Um arquivo local pode estar em um desses 4 estados: Não-modificado e corrente Localmente alterado e corrente Não-modificado e desatualizado Localmente modificado e desatualizado 07/04/2017 Prognus Software Livre airton@prognus.com.br
Cópias de trabalho x Repositório Estado commit update Não-modificado e corrente Não faz nada Localmente alterado e corrente publicação das alterações Não-modificado e desatualizado Traz as últimas alterações para a cópia local Localmente modificado e desatualizado Erro out-of-date Tenta fundir as alterações 07/04/2017 Prognus Software Livre airton@prognus.com.br
Ciclo básico de trabalho svn update svn add svn move svn status svn revert svn commit svn checkout svn info svn diff 07/04/2017 Prognus Software Livre airton@prognus.com.br
Ciclo básico de trabalho Baixando uma cópia de trabalho da árvore de desenvolvimento 07/04/2017 Atualizando uma cópia já existente Obtendo informações sobre a cópia de trabalho Prognus Software Livre airton@prognus.com.br Verificando o que foi alterado
Ciclo básico de trabalho Minhas alterações 07/04/2017 Alterações entre duas revisões Prognus Software Livre airton@prognus.com.br
Ciclo básico de trabalho Verificando o log de alterações 07/04/2017 Prognus Software Livre airton@prognus.com.br Enviando as modificações para o servidor
Códigos de status Código Significado U Arquivo de trabalho foi atualizado G Alterações no repositório foram automaticamente incorporadas a cópia de trabalho (Merge) M Arquivo de trabalho está modificado. C O arquivo está em conflito com a versão do respositório ? O arquivo não está sob controle de versão ! O arquivo está sob controle de versão mas está ausente ou incompleto A O arquivo será adicionado ao controle de versão (após commit) A+ O arquivo será movido (após commit) D O arquivo será deletado (após commit) 07/04/2017 Prognus Software Livre airton@prognus.com.br
Resolução de conflitos SVN exibe o código de status C durante o update; Adiciona marcações de conflito no arquivo; Strings especiais que delimitam os “lados” do conflito. <<<<<<< .mine ======= >>>>>>> .rXXX Para cada conflito mantém 3 arquivos extras não-versionados; Filename.mine; Filename.rOldRev (revisão do arquivo no seu diretório); Filename.rNewRev (revisão do repositório). Além do arquivo original, com as marcações; 07/04/2017 Prognus Software Livre airton@prognus.com.br
Resolução de conflitos 07/04/2017 Prognus Software Livre airton@prognus.com.br
Resolução de conflitos 07/04/2017 Prognus Software Livre airton@prognus.com.br
Ramificações - Branch Linha de desenvolvimento independente de outra linha; Partilham um histórico em comum; Sempre se inicia como cópia de outra coisa; 07/04/2017 Prognus Software Livre airton@prognus.com.br
Ramificações - Branch Criando uma ramificação – Branch: 07/04/2017 Prognus Software Livre airton@prognus.com.br
Ramificações - Branch As modificações são feitas de forma independente 07/04/2017 Prognus Software Livre airton@prognus.com.br
Ramificações - Branch Aplicando alterações feitas em outra ramificação: 07/04/2017 Prognus Software Livre airton@prognus.com.br
Ramificações - Branch Mesclando branchs: 07/04/2017 Prognus Software Livre airton@prognus.com.br
Patch 07/04/2017 Prognus Software Livre airton@prognus.com.br
Referências http://dev.prognus.com.br/processo/wiki/Guias/HowTo/UsandoSVN http://knaddison.com/technology/svn-status-code-cheat-sheet http://www.skill-guru.com/blog/2010/08/25/comparin-svn-and-cvs/ http://www.dicasl.com.br/arquivo/criar_e_usar_um_servidor_svn.php http://code.google.com/p/svnbook-pt-br/downloads/list 07/04/2017 Prognus Software Livre airton@prognus.com.br
Obrigado. airton@prognus.com.br prognus@prognus.com.br 07/04/2017 Prognus Software Livre airton@prognus.com.br