3. Agenda
• Introdução ao sistema de versionamento;
• Apresentação do Subversion (SVN);
• Principais comandos;
• Exemplos práticos.
4. Objetivo
• Introdução ao SVN;
• Capacitação para realizar todas as tarefas necessárias
para usar o SVN, em um dia normal de trabalho.
5. Sistema de versionamento
• É um software com a finalidade de gerenciar
diferentes versões no desenvolvimento de qualquer
artefato produzido (ex. código fonte);
• Pode ser útil tanto para pequenos projetos, quanto
para grandes;
• O versionamento e controle de versão é tão
importante que é até uma das exigências do CMMI.
6. Principais vantagens
• Controle do histórico - quem alterou? Quando alterou? Por que
alterou? Todas as respostas para essas perguntas o sistema de
versionamento nos fornece;
• Trabalho em equipe - facilita muito o trabalho no desenvolvimento,
além de garantir segurança aos artefatos. Torna-se possível diversas
pessoas trabalhem sobre o mesmo conjunto de documentos ao
mesmo tempo e mitiga o risco de conflitos de edições;
• Marcação e resgate de versões estáveis - a maioria dos sistemas
permite marcar onde é que o artefato estava com uma versão
estável, podendo ser facilmente resgatado no futuro;
• Ramificação de projeto - torna-se possível a divisão do projeto em
várias linhas de desenvolvimento, que podem ser trabalhadas
paralelamente, sem que uma interfira na outra.
7. O Subversion
• O Subversion é um sistema de controle de versão
livre e open source;
• Seu objetivo é gerenciar arquivos e diretórios, e
todas modificações feitas neles ao longo do tempo,
fornecendo um sistema centralizado de
compartilhamento de informação;
• Substituto do CVS.
8. O que é necessário instalar?
• SVN Client
▫ O programa cliente de linha de comando.
sudo apt-get install svn
▫ Ou o próprio Subversion (já vem com o client)
sudo apt-get install subversion
9. Principais comandos
• svn help - descreverá a sintaxe, opções, e
comportamento do subcomando (exemplo abaixo)
11. Principais comandos
• svn import
▫ é o modo rápido para copiar uma árvore de arquivos não
versionada em um repositório ( que foi criado pelo
administrador do SVN)
▫ ou seja, podemos copiar todos os arquivos do diretório
ensinar para o repositório:
$ svn import ensinar file:///usr/local/svn/blogs/ensinar -m
“Iniciando a brincadeira"
Adding ensinar/backup.xml
Adding ensinar/app_svn.ppt
Adding ensinar/material/svn-book.pdf
Committed revision 1.
12. Principais comandos
• svn checkout (OU svn co)
▫ cria uma “cópia de trabalho” em sua máquina local, do
projeto que você está trabalhando.
▫ iremos copiar os arquivos do SVN para a pasta ensinar
$ svn checkout
http://192.168.171.145/svn/projetos/ensinar ensinar
A trunk/index.php
A trunk/conf/build.conf
…
Checked out revision 42.
13. Principais comandos
• svn update (OU svn up)
▫ serve para deixar sua cópia de trabalho em sincronia
com a última revisão no repositório.
▫ executando o comando, podemos visualizar quais
arquivos foram adicionados e que não estavam na
nossa “cópia de trabalho”
$ svn update
U trunk/images/logo.gif
Updated to revision 2.
14. Principais comandos
• svn add
▫ serve para adicionar um novo arquivo no repositório
▫ por exemplo, adicionar o arquivo teste.xml na pasta
trunk
$ svn add ensinar/trunk/teste.xml
15. Principais comandos
• svn delete (OU svn del OU svn rm OU svn remove)
▫ serve para deletar um arquivo do repositório
▫ por exemplo, deletar o arquivo index.php da pasta
trunk
$ svn delete ensinar/trunk/index.php
16. Principais comandos
• svn copy (OU svn cp)
▫ serve para fazer uma cópia de um arquivo
▫ por exemplo, podemos fazer uma copia do arquivo
logo.gif
$ svn copy ensinar/trunk/images/logo.gif
/trunk/ensinar/images/logo_default.gif
17. Principais comandos
• svn move
▫ serve para mover um arquivo de lugar
▫ por exemplo, podemos mover o arquivo logo.gif para a
pasta trunk
$ svn move ensinar/trunk/images/logo.gif
/ensinar/trunk/logo.gif
18. Principais comandos
• svn mkdir
▫ serve para criar uma pasta no repositório
▫ se precisamos criar uma nova pasta chamada docs no
trunk, executamos o seguinte comando:
$ svn mkdir /ensinar/trunk/docs
19. Principais comandos
• svn status (OU svn st)
▫ muito útil para saber todas as alterações de arquivos e
diretórios que você fez
$ svn status
A /trunk/ensinar/images/logo_default.gif # file is
scheduled for addition
20. Principais comandos
• svn commit (OU svn ci)
▫ finalmente, após você ter realizado todas as suas
alterações, chegou a hora de efetivar as mesmas;
▫ e é essa a utilidade do comando commit, ele irá envia
todas as suas modificações para o servidor, sendo
preciso informar uma mensagem de log, descrevendo
sua alteração.
$ svn commit -m “Acabando com a brincadeira."
Sending /trunk/ensinar/images/logo_default.gif
Transmitting file data.
Committed revision 43.
21. Saiba mais
• SVN BOOK
▫ http://svnbook.red-bean.com/en/1.4/svn-book.pdf