SlideShare uma empresa Scribd logo
SVN - Subversion
Guia de sobrevivência
do usuário

                Fabrício Ferrari de Campos
Licença Creative Commons
Agenda
•   Introdução ao sistema de versionamento;
•   Apresentação do Subversion (SVN);
•   Principais comandos;
•   Exemplos práticos.
Objetivo
• Introdução ao SVN;
• Capacitação para realizar todas as tarefas necessárias
  para usar o SVN, em um dia normal de trabalho.
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.
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.
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.
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
Principais comandos
• svn help - descreverá a sintaxe, opções, e
  comportamento do subcomando (exemplo abaixo)
Principais comandos
• Apenas svn help irá apresentar a lista de comandos
  disponíveis:
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.
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.
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.
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
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
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
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
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
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
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.
Saiba mais
• SVN BOOK
 ▫ http://svnbook.red-bean.com/en/1.4/svn-book.pdf
A comunidade traduziu!
• SVN BOOK PT-BR
 ▫ http://code.google.com/p/svnbook-pt-br/
Bibliografia
• SVN BOOK
• http://pt.wikipedia.org/wiki/Sistema_de_controle_d
  e_versão

Mais conteúdo relacionado

Mais procurados

Regras de ouro
Regras de ouroRegras de ouro
Regras de ouro
Catarina Belchior
 
SSD - Solid State Drive
SSD - Solid State DriveSSD - Solid State Drive
SSD - Solid State Drive
Vagner Leal
 
Apresentação da Linguagem de Programação PHP
Apresentação da Linguagem de Programação PHPApresentação da Linguagem de Programação PHP
Apresentação da Linguagem de Programação PHP
Lorranna Machado
 
Normas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de SoftwareNormas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de Software
Danilo Sousa
 
TinyML - IoT e Machine Learning
TinyML -  IoT e Machine LearningTinyML -  IoT e Machine Learning
TinyML - IoT e Machine Learning
Alvaro Viebrantz
 
Como criar seu próprio Framework
Como criar seu próprio FrameworkComo criar seu próprio Framework
Como criar seu próprio Framework
Hiarison Gigante
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
Paulo Fonseca
 
Minicurso - Introdução ao LaTeX
Minicurso - Introdução ao LaTeXMinicurso - Introdução ao LaTeX
Minicurso - Introdução ao LaTeX
Rodrigo Smarzaro
 
Protocolo http
Protocolo httpProtocolo http
Protocolo httpBiel2013a
 
RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)
Elen Arantza
 
Exercicios hardware comentado
Exercicios hardware comentadoExercicios hardware comentado
Exercicios hardware comentadocapitulocontabil
 
Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de Software
Vinicius Garcia
 
Compreendendo a redundância de camada 3
Compreendendo a redundância de camada 3Compreendendo a redundância de camada 3
Compreendendo a redundância de camada 3Vitor Albuquerque
 
Introdução à Computação: Aula Prática - Sistemas Operacionais (simulando proc...
Introdução à Computação: Aula Prática - Sistemas Operacionais (simulando proc...Introdução à Computação: Aula Prática - Sistemas Operacionais (simulando proc...
Introdução à Computação: Aula Prática - Sistemas Operacionais (simulando proc...
Leinylson Fontinele
 
Trabalho sobre as memórias ram
Trabalho sobre as memórias ramTrabalho sobre as memórias ram
Trabalho sobre as memórias ramjfranca1984
 
Conceito de processos
Conceito de processosConceito de processos
Conceito de processos
Willian Ribeiro Assanuma
 
Aula 8 - SQL Injection
Aula 8 - SQL InjectionAula 8 - SQL Injection
Aula 8 - SQL Injection
Carlos Henrique Martins da Silva
 
Redes de computadores 2 - Aula 6 - DNS, DHCP
Redes de computadores 2 - Aula 6 - DNS, DHCPRedes de computadores 2 - Aula 6 - DNS, DHCP
Redes de computadores 2 - Aula 6 - DNS, DHCP
Cleber Fonseca
 

Mais procurados (20)

Regras de ouro
Regras de ouroRegras de ouro
Regras de ouro
 
SSD - Solid State Drive
SSD - Solid State DriveSSD - Solid State Drive
SSD - Solid State Drive
 
Apresentação da Linguagem de Programação PHP
Apresentação da Linguagem de Programação PHPApresentação da Linguagem de Programação PHP
Apresentação da Linguagem de Programação PHP
 
Normas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de SoftwareNormas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de Software
 
TinyML - IoT e Machine Learning
TinyML -  IoT e Machine LearningTinyML -  IoT e Machine Learning
TinyML - IoT e Machine Learning
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Programacao para Web I Plano de Ensinodoc
Programacao para Web I Plano de EnsinodocProgramacao para Web I Plano de Ensinodoc
Programacao para Web I Plano de Ensinodoc
 
Como criar seu próprio Framework
Como criar seu próprio FrameworkComo criar seu próprio Framework
Como criar seu próprio Framework
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Minicurso - Introdução ao LaTeX
Minicurso - Introdução ao LaTeXMinicurso - Introdução ao LaTeX
Minicurso - Introdução ao LaTeX
 
Protocolo http
Protocolo httpProtocolo http
Protocolo http
 
RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)
 
Exercicios hardware comentado
Exercicios hardware comentadoExercicios hardware comentado
Exercicios hardware comentado
 
Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de Software
 
Compreendendo a redundância de camada 3
Compreendendo a redundância de camada 3Compreendendo a redundância de camada 3
Compreendendo a redundância de camada 3
 
Introdução à Computação: Aula Prática - Sistemas Operacionais (simulando proc...
Introdução à Computação: Aula Prática - Sistemas Operacionais (simulando proc...Introdução à Computação: Aula Prática - Sistemas Operacionais (simulando proc...
Introdução à Computação: Aula Prática - Sistemas Operacionais (simulando proc...
 
Trabalho sobre as memórias ram
Trabalho sobre as memórias ramTrabalho sobre as memórias ram
Trabalho sobre as memórias ram
 
Conceito de processos
Conceito de processosConceito de processos
Conceito de processos
 
Aula 8 - SQL Injection
Aula 8 - SQL InjectionAula 8 - SQL Injection
Aula 8 - SQL Injection
 
Redes de computadores 2 - Aula 6 - DNS, DHCP
Redes de computadores 2 - Aula 6 - DNS, DHCPRedes de computadores 2 - Aula 6 - DNS, DHCP
Redes de computadores 2 - Aula 6 - DNS, DHCP
 

Destaque

Introdução ao Controle de Versões e SVN
Introdução ao Controle de Versões e SVNIntrodução ao Controle de Versões e SVN
Introdução ao Controle de Versões e SVN
Filipi Vianna
 
SVN: Controle de revisões com subversion - Thiago Rafael Becker
SVN: Controle de revisões com subversion - Thiago Rafael BeckerSVN: Controle de revisões com subversion - Thiago Rafael Becker
SVN: Controle de revisões com subversion - Thiago Rafael BeckerTchelinux
 
Botando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testesBotando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testes
kinow
 
Dojo com Arduino e Program-ME
Dojo com Arduino e Program-MEDojo com Arduino e Program-ME
Dojo com Arduino e Program-ME
Dr. Spock
 
SVN - Subversion
SVN - SubversionSVN - Subversion
SVN - Subversion
Rafael Une
 
Questoes concurso13122011-com respostas
Questoes concurso13122011-com respostasQuestoes concurso13122011-com respostas
Questoes concurso13122011-com respostas
felipetsi
 
Tutorial oracle forms builder
Tutorial oracle forms builderTutorial oracle forms builder
Tutorial oracle forms builder
Valdinho Pereira
 
Sistema de Controle de Versão - CVS, SVN e GIT
Sistema de Controle de Versão - CVS, SVN e GITSistema de Controle de Versão - CVS, SVN e GIT
Sistema de Controle de Versão - CVS, SVN e GIT
Gabriel Rubens
 
Apostila completa-oracle-programando-oracle
Apostila completa-oracle-programando-oracleApostila completa-oracle-programando-oracle
Apostila completa-oracle-programando-oracle79anderson
 
Treinamento Oracle Forms
Treinamento Oracle FormsTreinamento Oracle Forms
Treinamento Oracle Forms
Felipe Goulart
 

Destaque (10)

Introdução ao Controle de Versões e SVN
Introdução ao Controle de Versões e SVNIntrodução ao Controle de Versões e SVN
Introdução ao Controle de Versões e SVN
 
SVN: Controle de revisões com subversion - Thiago Rafael Becker
SVN: Controle de revisões com subversion - Thiago Rafael BeckerSVN: Controle de revisões com subversion - Thiago Rafael Becker
SVN: Controle de revisões com subversion - Thiago Rafael Becker
 
Botando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testesBotando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testes
 
Dojo com Arduino e Program-ME
Dojo com Arduino e Program-MEDojo com Arduino e Program-ME
Dojo com Arduino e Program-ME
 
SVN - Subversion
SVN - SubversionSVN - Subversion
SVN - Subversion
 
Questoes concurso13122011-com respostas
Questoes concurso13122011-com respostasQuestoes concurso13122011-com respostas
Questoes concurso13122011-com respostas
 
Tutorial oracle forms builder
Tutorial oracle forms builderTutorial oracle forms builder
Tutorial oracle forms builder
 
Sistema de Controle de Versão - CVS, SVN e GIT
Sistema de Controle de Versão - CVS, SVN e GITSistema de Controle de Versão - CVS, SVN e GIT
Sistema de Controle de Versão - CVS, SVN e GIT
 
Apostila completa-oracle-programando-oracle
Apostila completa-oracle-programando-oracleApostila completa-oracle-programando-oracle
Apostila completa-oracle-programando-oracle
 
Treinamento Oracle Forms
Treinamento Oracle FormsTreinamento Oracle Forms
Treinamento Oracle Forms
 

Semelhante a SVN - Subversion: Guia de sobrevivência do usuário

Conceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoConceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de código
Felipe
 
SVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareSVN no Desenvolvimento de Software
SVN no Desenvolvimento de Software
Manoel Afonso
 
Apresentação controle de versão
Apresentação controle de versãoApresentação controle de versão
Apresentação controle de versão
Universidade Federal Rural do Semi Arido
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
Marcos Pessoa
 
Controle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoControle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoFabricio Nogueira
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVN
Luciano Lima
 
Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversion
lekitamura
 
SVN Básico
SVN BásicoSVN Básico
SVN Básico
CJR, UnB
 
Controle de versão
Controle de versãoControle de versão
Controle de versãoZé Pereira
 
Go git - Presentation @Navita
Go git - Presentation @NavitaGo git - Presentation @Navita
Go git - Presentation @Navita
Marcos Paulo Souza Damasceno
 
SVN com TortoiseSVN
SVN com TortoiseSVNSVN com TortoiseSVN
SVN com TortoiseSVN
Paulo Remoli
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
André Justi
 
Cvs everton
Cvs   evertonCvs   everton
Cvs everton
Everton Buzzi
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de ConfiguraçãoWagner Zaparoli
 
[Mini-curso] Sistema de Controle de Versão
[Mini-curso] Sistema de Controle de Versão[Mini-curso] Sistema de Controle de Versão
[Mini-curso] Sistema de Controle de Versão
Marco Rosner
 
Ubuntu
UbuntuUbuntu
Git para quem vem do SVN
Git para quem vem do SVNGit para quem vem do SVN
Git para quem vem do SVN
Michael Schuenck dos Santos
 
Git - Controle de Versão Inteligente
Git - Controle de Versão InteligenteGit - Controle de Versão Inteligente
Git - Controle de Versão Inteligente
Adriano Rocha
 

Semelhante a SVN - Subversion: Guia de sobrevivência do usuário (20)

Conceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoConceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de código
 
SVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareSVN no Desenvolvimento de Software
SVN no Desenvolvimento de Software
 
Apresentação controle de versão
Apresentação controle de versãoApresentação controle de versão
Apresentação controle de versão
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
 
Controle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoControle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básico
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVN
 
Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversion
 
SVN Básico
SVN BásicoSVN Básico
SVN Básico
 
Controle de versão
Controle de versãoControle de versão
Controle de versão
 
Go git - Presentation @Navita
Go git - Presentation @NavitaGo git - Presentation @Navita
Go git - Presentation @Navita
 
SVN com TortoiseSVN
SVN com TortoiseSVNSVN com TortoiseSVN
SVN com TortoiseSVN
 
Controle de versões com o Subversion
Controle de versões com o SubversionControle de versões com o Subversion
Controle de versões com o Subversion
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Cvs everton
Cvs   evertonCvs   everton
Cvs everton
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
 
[Mini-curso] Sistema de Controle de Versão
[Mini-curso] Sistema de Controle de Versão[Mini-curso] Sistema de Controle de Versão
[Mini-curso] Sistema de Controle de Versão
 
Ubuntu
UbuntuUbuntu
Ubuntu
 
Git para quem vem do SVN
Git para quem vem do SVNGit para quem vem do SVN
Git para quem vem do SVN
 
Git - Controle de Versão Inteligente
Git - Controle de Versão InteligenteGit - Controle de Versão Inteligente
Git - Controle de Versão Inteligente
 

Mais de Fabrício Campos

Como ser produtivo? Contando tomates
Como ser produtivo? Contando tomatesComo ser produtivo? Contando tomates
Como ser produtivo? Contando tomatesFabrício Campos
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
Fabrício Campos
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATS
Fabrício Campos
 
Técnicas de modelagem de teste (parte 2)
Técnicas de modelagem de teste (parte 2)Técnicas de modelagem de teste (parte 2)
Técnicas de modelagem de teste (parte 2)Fabrício Campos
 
Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)
Fabrício Campos
 
QAMP (Quality Assurance Management Professional)
QAMP (Quality Assurance Management Professional)QAMP (Quality Assurance Management Professional)
QAMP (Quality Assurance Management Professional)
Fabrício Campos
 
A Importância do Teste de Software
A Importância do Teste de SoftwareA Importância do Teste de Software
A Importância do Teste de Software
Fabrício Campos
 
CTFL - BSTQB
CTFL - BSTQBCTFL - BSTQB
CTFL - BSTQB
Fabrício Campos
 
Por que testar?
Por que testar?Por que testar?
Por que testar?
Fabrício Campos
 

Mais de Fabrício Campos (9)

Como ser produtivo? Contando tomates
Como ser produtivo? Contando tomatesComo ser produtivo? Contando tomates
Como ser produtivo? Contando tomates
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATS
 
Técnicas de modelagem de teste (parte 2)
Técnicas de modelagem de teste (parte 2)Técnicas de modelagem de teste (parte 2)
Técnicas de modelagem de teste (parte 2)
 
Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)
 
QAMP (Quality Assurance Management Professional)
QAMP (Quality Assurance Management Professional)QAMP (Quality Assurance Management Professional)
QAMP (Quality Assurance Management Professional)
 
A Importância do Teste de Software
A Importância do Teste de SoftwareA Importância do Teste de Software
A Importância do Teste de Software
 
CTFL - BSTQB
CTFL - BSTQBCTFL - BSTQB
CTFL - BSTQB
 
Por que testar?
Por que testar?Por que testar?
Por que testar?
 

SVN - Subversion: Guia de sobrevivência do usuário

  • 1. SVN - Subversion Guia de sobrevivência do usuário Fabrício Ferrari de Campos
  • 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)
  • 10. Principais comandos • Apenas svn help irá apresentar a lista de comandos disponíveis:
  • 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
  • 22.
  • 23. A comunidade traduziu! • SVN BOOK PT-BR ▫ http://code.google.com/p/svnbook-pt-br/
  • 24.
  • 25.
  • 26. Bibliografia • SVN BOOK • http://pt.wikipedia.org/wiki/Sistema_de_controle_d e_versão