SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Youngtaek Oh
 
소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵중선 곽
 
Crystal Hirschorn_Building Internal Developer Platforms that will make the en...
Crystal Hirschorn_Building Internal Developer Platforms that will make the en...Crystal Hirschorn_Building Internal Developer Platforms that will make the en...
Crystal Hirschorn_Building Internal Developer Platforms that will make the en...VMware Tanzu
 
AWS Re:Invent - High Availability Architecture at Netflix
AWS Re:Invent - High Availability Architecture at NetflixAWS Re:Invent - High Availability Architecture at Netflix
AWS Re:Invent - High Availability Architecture at NetflixAdrian Cockcroft
 
Reengenharia de Software
Reengenharia de SoftwareReengenharia de Software
Reengenharia de SoftwareRafael Berto
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)YEONG-CHEON YOU
 
Extreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilExtreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilJaffer Veronezi
 
Version Control System
Version Control SystemVersion Control System
Version Control Systemguptaanil
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기MinGeun Park
 
Prerequisite knowledge for shared memory concurrency
Prerequisite knowledge for shared memory concurrencyPrerequisite knowledge for shared memory concurrency
Prerequisite knowledge for shared memory concurrencyViller Hsiao
 
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e MongodbRealizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e MongodbMongoDB
 
Linux kernel modules
Linux kernel modulesLinux kernel modules
Linux kernel modulesEddy Reyes
 
Rabbitmq & Kafka Presentation
Rabbitmq & Kafka PresentationRabbitmq & Kafka Presentation
Rabbitmq & Kafka PresentationEmre Gündoğdu
 
Yocto: Training in English
Yocto: Training in EnglishYocto: Training in English
Yocto: Training in EnglishOtavio Salvador
 
Looking towards an official cassandra sidecar netflix
Looking towards an official cassandra sidecar   netflixLooking towards an official cassandra sidecar   netflix
Looking towards an official cassandra sidecar netflixVinay Kumar Chella
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP AdvSeungmo Koo
 

Tendances (20)

Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템
 
소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵
 
Crystal Hirschorn_Building Internal Developer Platforms that will make the en...
Crystal Hirschorn_Building Internal Developer Platforms that will make the en...Crystal Hirschorn_Building Internal Developer Platforms that will make the en...
Crystal Hirschorn_Building Internal Developer Platforms that will make the en...
 
AWS Re:Invent - High Availability Architecture at Netflix
AWS Re:Invent - High Availability Architecture at NetflixAWS Re:Invent - High Availability Architecture at Netflix
AWS Re:Invent - High Availability Architecture at Netflix
 
Reengenharia de Software
Reengenharia de SoftwareReengenharia de Software
Reengenharia de Software
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
 
Extreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilExtreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia Ágil
 
Version Control System
Version Control SystemVersion Control System
Version Control System
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
 
Prerequisite knowledge for shared memory concurrency
Prerequisite knowledge for shared memory concurrencyPrerequisite knowledge for shared memory concurrency
Prerequisite knowledge for shared memory concurrency
 
Spark Tips & Tricks
Spark Tips & TricksSpark Tips & Tricks
Spark Tips & Tricks
 
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e MongodbRealizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
 
Linux kernel modules
Linux kernel modulesLinux kernel modules
Linux kernel modules
 
Rabbitmq & Kafka Presentation
Rabbitmq & Kafka PresentationRabbitmq & Kafka Presentation
Rabbitmq & Kafka Presentation
 
Yocto: Training in English
Yocto: Training in EnglishYocto: Training in English
Yocto: Training in English
 
Looking towards an official cassandra sidecar netflix
Looking towards an official cassandra sidecar   netflixLooking towards an official cassandra sidecar   netflix
Looking towards an official cassandra sidecar netflix
 
Docker on Docker
Docker on DockerDocker on Docker
Docker on Docker
 
from Source to Binary: How GNU Toolchain Works
from Source to Binary: How GNU Toolchain Worksfrom Source to Binary: How GNU Toolchain Works
from Source to Binary: How GNU Toolchain Works
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv
 

En vedette

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 SVNFilipi 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 testeskinow
 
Dojo com Arduino e Program-ME
Dojo com Arduino e Program-MEDojo com Arduino e Program-ME
Dojo com Arduino e Program-MEDr. Spock
 
SVN - Subversion
SVN - SubversionSVN - Subversion
SVN - SubversionRafael Une
 
Questoes concurso13122011-com respostas
Questoes concurso13122011-com respostasQuestoes concurso13122011-com respostas
Questoes concurso13122011-com respostasfelipetsi
 
Tutorial oracle forms builder
Tutorial oracle forms builderTutorial oracle forms builder
Tutorial oracle forms builderValdinho 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 GITGabriel 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 FormsFelipe Goulart
 

En vedette (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
 

Similaire à SVN guia 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ódigoFelipe
 
SVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareSVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareManoel Afonso
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoMarcos 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/SVNLuciano Lima
 
Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversionlekitamura
 
SVN Básico
SVN BásicoSVN Básico
SVN BásicoCJR, UnB
 
Controle de versão
Controle de versãoControle de versão
Controle de versãoZé Pereira
 
SVN com TortoiseSVN
SVN com TortoiseSVNSVN com TortoiseSVN
SVN com TortoiseSVNPaulo Remoli
 
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ãoMarco Rosner
 
Git - Controle de Versão Inteligente
Git - Controle de Versão InteligenteGit - Controle de Versão Inteligente
Git - Controle de Versão InteligenteAdriano Rocha
 

Similaire à SVN guia 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
 

Plus 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áticaFabrí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 ALATSFabrí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 SoftwareFabrício Campos
 

Plus 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 guia 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