SlideShare uma empresa Scribd logo
Sistemas de Controle de
 Versão
 Conceitos, Subversion e prática



•Édipo Oliveira Maciel
•Jonathas Silva
•Leonardo Alexandre
Faça uma avaliação rápida da situação da sua
equipe de desenvolvimento:

• Alguém já sobrescreveu o código de outra pessoa
  por acidente e acabou perdendo as alterações?
• Tem dificuldades em saber quais as alterações
  efetuadas em um programa, quando foram feitas
  e quem fez?
• Tem dificuldade em recuperar o código de uma
  versão anterior que está em produção?
• Tem problemas em manter variações do sistema
  ao mesmo tempo?
E agora?!
Roteiro
1.   Conceito
2.   Terminologias e Comandos;
3.   Características e Usabilidade;
4.   Subversion;
5.   Comandos principais e específicos;
6.   Na prática;
Conceito
 Um software com a finalidade de gerenciar
 diferentes versões no desenvolvimento de um
 documento qualquer.

 Esses sistemas são comumente utilizados no
 desenvolvimento de software para controlar as
 diferentes versões — histórico e
 desenvolvimento — dos códigos-fontes e
 também da documentação.
Idéia Geral
Terminologia Básica
• Repositório: Local onde são armazenados os arquivos
  mantidos sob controle de versão;

• Área de trabalho: Cópia local dos arquivos de um
  repositório, utilizada para o desenvolvimento
  propriamente dito

• Módulo ou projeto: Conjunto independente de
  arquivos; normalmente um repositório é constituído de
  muitos módulos
Terminologia Básica
• Check-out: Operação inicial de criar uma área
  de trabalho a partir de um módulo do
  repositório;

• Update: Operação que atualiza a cópia local
  com eventuais mudanças ocorridas no
  repositório;

• Commit: Operação de efetuar mudanças em
  um repositório, também chamada de check-in;
Pontos positivos
• Possibilitar compartilhamento de código-fonte e
  desenvolvimento distribuído;
• Permitir controle de modificações e trabalho em
  paralelo
• Auxiliar na qualidade do código e em sua
  manutenção;
• Atrair novos colaboradores para projetos abertos
  e expor sua evolução
E mais...
• Monitorar e registrar todas as alterações em um
  ou mais arquivos;
• Permitir que as alterações possam ser
  examinadas individualmente e revertidas caso
  necessário;
• Possibilita que a “imagem” de um arquivo possa
  ser obtida para qualquer instante de sua
  história;
Características de um SCV
• Pode ser centralizado ou não, onde as alterações
  sempre passam por um servidor central;
• Pode permitir somente armazenamento de
  arquivos texto ou também de binários;
• Pode implementar mecanismo de locking para
  evitar acessos simultâneos ou merging para
  possibilitar edição concorrente;
• Pode dispor ou não de autenticação e controle de
  acesso;
Tipos de SCV - Centralizado
• O controle de versão centralizado segue
  a topologia em estrela, havendo apenas
  um único repositório central mas várias cópias
  de trabalho, uma para cada desenvolvedor. A
  comunicação entre uma área de trabalho e outra
  passa obrigatoriamente pelo repositório central.
Centralizado
Tipos de SCV - Distribuído
• São vários repositórios autônomos e
  independentes, um para cada desenvolvedor.
  Cada repositório possui uma área de trabalho
  acoplada e as operações commit e update
  acontecem localmente entre os dois.
Tipos de SCV - Distribuído
Ferramenta Subversion
Subversion
• Projeto livre mantido pela CollabNet
• Iniciado em 2000
• Tenta aprimorar o CVS e remover suas
  limitações, contudo seguindo os mesmos
  princípios básicos
• É o provável substituto do CVS em projetos de
  Software Livre
• Versão atual: 1.2.1
Características
•   É um sistema centralizado;
•   O repositório pode ser local ou remoto;
•   O acesso ao repositório é feito indiretamente;
•   Permite fazer tanto locking quanto merging;
•   Permite atribuir rótulos (tags);
•   Possibilita criar ramificações (branches);
Características
• As revisões são sempre
globais,começando em 0
(com o repositório vazio)
Vantagens
• Permite alterar nome, copiar ou mover arquivos
  preservando seu histórico;
• Faz versionamento para diretórios;
• Commits são operações atômicas;
• Arquivos binários são tratados automaticamente
  e apenas as diferenças são armazenadas
• Suporta links simbólicos;
• Branching é simples e eficiente;
Principais Comandos
• checkout: obter uma cópia de um diretório
  para a área de trabalho local;
• commit: enviar as alterações da cópia local
  para o repositório;
• update: atualizar a cópia local com eventuais
  mudanças do repositório;
• add/remove: adicionar e remover arquivos do
  repositório;
Principais Comandos
• import: importar para o repositório uma árvore
  de diretórios sem versionamento;
• info: exibir informações sobre o repositório ou
  arquivo especificado;
• diff: exibe alterações entre um arquivo e
  revisões anteriores;
• status: exibe o estado atual de cada arquivo,
  sem alterar a área de trabalho ou o repositório;
Praticando...

Mais conteúdo relacionado

PDF
Git e GitHub: Versionamento de Código Fácil
PPTX
Sistemas de controle de versão
PPTX
Sistemas de controle de versão
PDF
Apresentação controle de versão
PDF
Conceitos e exemplos em versionamento de código
PDF
Plano do projeto de software SIGEM - Sistema de gestão de materiais
PDF
Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa
PDF
SVN: Controle de revisões com subversion - Thiago Rafael Becker
Git e GitHub: Versionamento de Código Fácil
Sistemas de controle de versão
Sistemas de controle de versão
Apresentação controle de versão
Conceitos e exemplos em versionamento de código
Plano do projeto de software SIGEM - Sistema de gestão de materiais
Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa
SVN: Controle de revisões com subversion - Thiago Rafael Becker

Mais procurados (20)

PPT
Svn - grupo de estudos sol7
PDF
SVN - Subversion: Guia de sobrevivência do usuário
PPT
Controlando Projetos com Netbeans e Subversion
PDF
GIT Básico
ODP
Jenkins workshop
PPT
GCS - Aula 07 - Sistemas de Controle de Versões
PDF
Curso de CVS - Parte 1 - Introdução
PDF
Intervalo técnico Git/SVN
PDF
Apresentação Docker
PPTX
Controle de versão
PPTX
MiniCurso de Git e Github - UNIFG PIE
PDF
Introducao ao Git
PDF
Apresentação maven
PDF
SVN - Subversion
PDF
Integração Contínua com CVS, CruiseControl, AntHill, Gump
PPTX
PPTX
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
PPTX
Controle de versão com e git
PDF
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
Svn - grupo de estudos sol7
SVN - Subversion: Guia de sobrevivência do usuário
Controlando Projetos com Netbeans e Subversion
GIT Básico
Jenkins workshop
GCS - Aula 07 - Sistemas de Controle de Versões
Curso de CVS - Parte 1 - Introdução
Intervalo técnico Git/SVN
Apresentação Docker
Controle de versão
MiniCurso de Git e Github - UNIFG PIE
Introducao ao Git
Apresentação maven
SVN - Subversion
Integração Contínua com CVS, CruiseControl, AntHill, Gump
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Controle de versão com e git
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
Anúncio

Destaque (20)

PPT
Sistema de Controle de Versão - CVS, SVN e GIT
PPTX
Git vs cvs ece2011
PDF
Testes de software
PDF
Github git-cheat-sheet
PDF
Git - Controle de Versões do Jeito Certo
PDF
Git - The Incomplete Introduction
PPT
GCS - Aula 09 - GCS Ágil
PDF
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
PPT
GCS - Aula 02 - Conceitos Principais
PDF
Workshop sistema de versionamento de código - git
PDF
Controle de Mudanças com GitHub
PPTX
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
PDF
Introdução ao Sistema de Controle de Versão
PDF
Controle de versão com GIT
PPT
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
PDF
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
PDF
Apresentação do SAEO na Administração Pública
PDF
[Mini-curso] Sistema de Controle de Versão
PDF
QConSP: Vivenciando dev ops para além da automação de infraestrutura
PDF
Alm open source
Sistema de Controle de Versão - CVS, SVN e GIT
Git vs cvs ece2011
Testes de software
Github git-cheat-sheet
Git - Controle de Versões do Jeito Certo
Git - The Incomplete Introduction
GCS - Aula 09 - GCS Ágil
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
GCS - Aula 02 - Conceitos Principais
Workshop sistema de versionamento de código - git
Controle de Mudanças com GitHub
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
Introdução ao Sistema de Controle de Versão
Controle de versão com GIT
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Apresentação do SAEO na Administração Pública
[Mini-curso] Sistema de Controle de Versão
QConSP: Vivenciando dev ops para além da automação de infraestrutura
Alm open source
Anúncio

Semelhante a Sistemas de Controle de Versão (20)

PPTX
Sistemas de Controle de Versão
PDF
“Revision Control Systems: Subversion (SVN)” por Tiago Rodrigues
PDF
Porque todo programador deve utilizar Sistema de Controle de Versão?
PDF
Controle de Versão Distribuído com Git básico
PDF
Version all the things [Workflows com Git]
PPTX
Primeiros passos - GIT
PPT
Desenvolvimento organizado com VCS
PPT
CVS - Slides Parte 1 - Introdução
ODP
Introdução ao git e github
PDF
SVN no Desenvolvimento de Software
PDF
PDF
Introdução ao Git - fs2w - GrupySP
PPTX
Subrvesion - Controle de Versão
PPTX
Git - Controle de Versão Inteligente
PDF
Svn e processos de controle de código
PDF
Controle de versão com Git
PDF
Git e a importância de versionar um projeto
KEY
Go git - Presentation @Navita
PPTX
Cvs everton
PPTX
Introdução ao Git
Sistemas de Controle de Versão
“Revision Control Systems: Subversion (SVN)” por Tiago Rodrigues
Porque todo programador deve utilizar Sistema de Controle de Versão?
Controle de Versão Distribuído com Git básico
Version all the things [Workflows com Git]
Primeiros passos - GIT
Desenvolvimento organizado com VCS
CVS - Slides Parte 1 - Introdução
Introdução ao git e github
SVN no Desenvolvimento de Software
Introdução ao Git - fs2w - GrupySP
Subrvesion - Controle de Versão
Git - Controle de Versão Inteligente
Svn e processos de controle de código
Controle de versão com Git
Git e a importância de versionar um projeto
Go git - Presentation @Navita
Cvs everton
Introdução ao Git

Último (20)

PPTX
Sistemas de Teconologias da Informação em Saúde.pptx
PPTX
Curso de Java 6 - (Números, Data e Hora).pptx
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Curso de Java 5 - (Strings) Tipo de Dados.pptx
PPTX
Curso de Java 3 - (Estruturas de Controle, Decisão, Loop, Procedimento).pptx
PPTX
21 - Lógica de Programação com Portugol.pptx
PPT
Sistemas de Informação em Saúde Aplicada.ppt
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PPTX
Aula sobre desenvolvimento de aplicativos
PPTX
Curso de Java 2 - (PrimeiroPrograma, Variáveis, Tipos e Operadores.pptx
PPTX
SISTEMA DE INFORMAÇÃO EM SAÚDE_UEPA.pptx
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PPTX
Curso de Java 4 - (Orientação a Objetos).pptx
PPTX
22 - Lógica de Programação com Portugol.pptx
PPTX
Curso de Java 7 - (ArrayList, Collections,(Set, List, Queue, Map)).pptx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Émile Durkheim slide elaborado muito bom
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Sistemas de Teconologias da Informação em Saúde.pptx
Curso de Java 6 - (Números, Data e Hora).pptx
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Curso de Java 5 - (Strings) Tipo de Dados.pptx
Curso de Java 3 - (Estruturas de Controle, Decisão, Loop, Procedimento).pptx
21 - Lógica de Programação com Portugol.pptx
Sistemas de Informação em Saúde Aplicada.ppt
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Aula sobre desenvolvimento de aplicativos
Curso de Java 2 - (PrimeiroPrograma, Variáveis, Tipos e Operadores.pptx
SISTEMA DE INFORMAÇÃO EM SAÚDE_UEPA.pptx
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Curso de Java 4 - (Orientação a Objetos).pptx
22 - Lógica de Programação com Portugol.pptx
Curso de Java 7 - (ArrayList, Collections,(Set, List, Queue, Map)).pptx
Apple Pippin Uma breve introdução. - David Glotz
Émile Durkheim slide elaborado muito bom
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx

Sistemas de Controle de Versão

  • 1. Sistemas de Controle de Versão Conceitos, Subversion e prática •Édipo Oliveira Maciel •Jonathas Silva •Leonardo Alexandre
  • 2. Faça uma avaliação rápida da situação da sua equipe de desenvolvimento: • Alguém já sobrescreveu o código de outra pessoa por acidente e acabou perdendo as alterações? • Tem dificuldades em saber quais as alterações efetuadas em um programa, quando foram feitas e quem fez? • Tem dificuldade em recuperar o código de uma versão anterior que está em produção? • Tem problemas em manter variações do sistema ao mesmo tempo?
  • 4. Roteiro 1. Conceito 2. Terminologias e Comandos; 3. Características e Usabilidade; 4. Subversion; 5. Comandos principais e específicos; 6. Na prática;
  • 5. Conceito Um software com a finalidade de gerenciar diferentes versões no desenvolvimento de um documento qualquer. Esses sistemas são comumente utilizados no desenvolvimento de software para controlar as diferentes versões — histórico e desenvolvimento — dos códigos-fontes e também da documentação.
  • 7. Terminologia Básica • Repositório: Local onde são armazenados os arquivos mantidos sob controle de versão; • Área de trabalho: Cópia local dos arquivos de um repositório, utilizada para o desenvolvimento propriamente dito • Módulo ou projeto: Conjunto independente de arquivos; normalmente um repositório é constituído de muitos módulos
  • 8. Terminologia Básica • Check-out: Operação inicial de criar uma área de trabalho a partir de um módulo do repositório; • Update: Operação que atualiza a cópia local com eventuais mudanças ocorridas no repositório; • Commit: Operação de efetuar mudanças em um repositório, também chamada de check-in;
  • 9. Pontos positivos • Possibilitar compartilhamento de código-fonte e desenvolvimento distribuído; • Permitir controle de modificações e trabalho em paralelo • Auxiliar na qualidade do código e em sua manutenção; • Atrair novos colaboradores para projetos abertos e expor sua evolução
  • 10. E mais... • Monitorar e registrar todas as alterações em um ou mais arquivos; • Permitir que as alterações possam ser examinadas individualmente e revertidas caso necessário; • Possibilita que a “imagem” de um arquivo possa ser obtida para qualquer instante de sua história;
  • 11. Características de um SCV • Pode ser centralizado ou não, onde as alterações sempre passam por um servidor central; • Pode permitir somente armazenamento de arquivos texto ou também de binários; • Pode implementar mecanismo de locking para evitar acessos simultâneos ou merging para possibilitar edição concorrente; • Pode dispor ou não de autenticação e controle de acesso;
  • 12. Tipos de SCV - Centralizado • O controle de versão centralizado segue a topologia em estrela, havendo apenas um único repositório central mas várias cópias de trabalho, uma para cada desenvolvedor. A comunicação entre uma área de trabalho e outra passa obrigatoriamente pelo repositório central.
  • 14. Tipos de SCV - Distribuído • São vários repositórios autônomos e independentes, um para cada desenvolvedor. Cada repositório possui uma área de trabalho acoplada e as operações commit e update acontecem localmente entre os dois.
  • 15. Tipos de SCV - Distribuído
  • 17. Subversion • Projeto livre mantido pela CollabNet • Iniciado em 2000 • Tenta aprimorar o CVS e remover suas limitações, contudo seguindo os mesmos princípios básicos • É o provável substituto do CVS em projetos de Software Livre • Versão atual: 1.2.1
  • 18. Características • É um sistema centralizado; • O repositório pode ser local ou remoto; • O acesso ao repositório é feito indiretamente; • Permite fazer tanto locking quanto merging; • Permite atribuir rótulos (tags); • Possibilita criar ramificações (branches);
  • 19. Características • As revisões são sempre globais,começando em 0 (com o repositório vazio)
  • 20. Vantagens • Permite alterar nome, copiar ou mover arquivos preservando seu histórico; • Faz versionamento para diretórios; • Commits são operações atômicas; • Arquivos binários são tratados automaticamente e apenas as diferenças são armazenadas • Suporta links simbólicos; • Branching é simples e eficiente;
  • 21. Principais Comandos • checkout: obter uma cópia de um diretório para a área de trabalho local; • commit: enviar as alterações da cópia local para o repositório; • update: atualizar a cópia local com eventuais mudanças do repositório; • add/remove: adicionar e remover arquivos do repositório;
  • 22. Principais Comandos • import: importar para o repositório uma árvore de diretórios sem versionamento; • info: exibir informações sobre o repositório ou arquivo especificado; • diff: exibe alterações entre um arquivo e revisões anteriores; • status: exibe o estado atual de cada arquivo, sem alterar a área de trabalho ou o repositório;