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

Mais procurados

Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
SOL7 - Tecnologia de Decisão
 
SVN - Subversion: Guia de sobrevivência do usuário
SVN - Subversion: Guia de sobrevivência  do usuárioSVN - Subversion: Guia de sobrevivência  do usuário
SVN - Subversion: Guia de sobrevivência do usuário
Fabrício Campos
 
Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversion
lekitamura
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
André Justi
 
Jenkins workshop
Jenkins workshopJenkins workshop
Jenkins workshop
Felipe Joel da Rosa
 
GCS - Aula 07 - Sistemas de Controle de Versões
GCS - Aula 07 - Sistemas de Controle de VersõesGCS - Aula 07 - Sistemas de Controle de Versões
GCS - Aula 07 - Sistemas de Controle de Versões
Misael Santos
 
Curso de CVS - Parte 1 - Introdução
Curso de CVS - Parte 1 - IntroduçãoCurso de CVS - Parte 1 - Introdução
Curso de CVS - Parte 1 - Introdução
Marden Neubert
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVN
Luciano Lima
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
André Justi
 
Controle de versão
Controle de versãoControle de versão
Controle de versão
Zé Pereira
 
MiniCurso de Git e Github - UNIFG PIE
MiniCurso de Git e Github - UNIFG PIEMiniCurso de Git e Github - UNIFG PIE
MiniCurso de Git e Github - UNIFG PIE
Cloves da Rocha
 
Introducao ao Git
Introducao ao GitIntroducao ao Git
Introducao ao Git
Claudinei Brito Junior
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
André Justi
 
SVN - Subversion
SVN - SubversionSVN - Subversion
SVN - Subversion
Rafael Une
 
Integração Contínua com CVS, CruiseControl, AntHill, Gump
Integração Contínua com CVS, CruiseControl, AntHill, GumpIntegração Contínua com CVS, CruiseControl, AntHill, Gump
Integração Contínua com CVS, CruiseControl, AntHill, Gump
Denis L Presciliano
 
Git
GitGit
Docker
DockerDocker
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Renato Groff
 
Controle de versão com e git
Controle de versão com e gitControle de versão com e git
Controle de versão com e git
Thiago Barros, PSM
 
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
Jadson Santos
 

Mais procurados (20)

Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
 
SVN - Subversion: Guia de sobrevivência do usuário
SVN - Subversion: Guia de sobrevivência  do usuárioSVN - Subversion: Guia de sobrevivência  do usuário
SVN - Subversion: Guia de sobrevivência do usuário
 
Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversion
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Jenkins workshop
Jenkins workshopJenkins workshop
Jenkins workshop
 
GCS - Aula 07 - Sistemas de Controle de Versões
GCS - Aula 07 - Sistemas de Controle de VersõesGCS - Aula 07 - Sistemas de Controle de Versões
GCS - Aula 07 - Sistemas de Controle de Versões
 
Curso de CVS - Parte 1 - Introdução
Curso de CVS - Parte 1 - IntroduçãoCurso de CVS - Parte 1 - Introdução
Curso de CVS - Parte 1 - Introdução
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVN
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
Controle de versão
Controle de versãoControle de versão
Controle de versão
 
MiniCurso de Git e Github - UNIFG PIE
MiniCurso de Git e Github - UNIFG PIEMiniCurso de Git e Github - UNIFG PIE
MiniCurso de Git e Github - UNIFG PIE
 
Introducao ao Git
Introducao ao GitIntroducao ao Git
Introducao ao Git
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
 
SVN - Subversion
SVN - SubversionSVN - Subversion
SVN - Subversion
 
Integração Contínua com CVS, CruiseControl, AntHill, Gump
Integração Contínua com CVS, CruiseControl, AntHill, GumpIntegração Contínua com CVS, CruiseControl, AntHill, Gump
Integração Contínua com CVS, CruiseControl, AntHill, Gump
 
Git
GitGit
Git
 
Docker
DockerDocker
Docker
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
 
Controle de versão com e git
Controle de versão com e gitControle de versão com e git
Controle de versão com e git
 
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
 

Destaque

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
 
Git vs cvs ece2011
Git vs cvs ece2011Git vs cvs ece2011
Git vs cvs ece2011
da152
 
Testes de software
Testes de softwareTestes de software
Testes de software
Fernando Palma
 
Github git-cheat-sheet
Github git-cheat-sheetGithub git-cheat-sheet
Github git-cheat-sheet
Abdul Basit
 
Git - Controle de Versões do Jeito Certo
Git - Controle de Versões do Jeito CertoGit - Controle de Versões do Jeito Certo
Git - Controle de Versões do Jeito Certo
Arthur Zapparoli
 
Git - The Incomplete Introduction
Git - The Incomplete IntroductionGit - The Incomplete Introduction
Git - The Incomplete Introduction
rschwietzke
 
GCS - Aula 09 - GCS Ágil
GCS - Aula 09 - GCS ÁgilGCS - Aula 09 - GCS Ágil
GCS - Aula 09 - GCS Ágil
Misael Santos
 
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVNControle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Felipe Queiroz
 
GCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos PrincipaisGCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos Principais
Misael Santos
 
Workshop sistema de versionamento de código - git
Workshop  sistema de versionamento de código - gitWorkshop  sistema de versionamento de código - git
Workshop sistema de versionamento de código - git
Thiago Filadelfo
 
Controle de Mudanças com GitHub
Controle de Mudanças com GitHubControle de Mudanças com GitHub
Controle de Mudanças com GitHub
Bruno Furtado
 
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
especificacoes.com
 
Introdução ao Sistema de Controle de Versão
Introdução ao Sistema de Controle de VersãoIntrodução ao Sistema de Controle de Versão
Introdução ao Sistema de Controle de Versão
Fernando Machado
 
Controle de versão com GIT
Controle de versão com GITControle de versão com GIT
Controle de versão com GIT
Paulo César M Jeveaux
 
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version ControlJoomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
Joomla!Day Brasil
 
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataformaWine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Paulo César M Jeveaux
 
Apresentação do SAEO na Administração Pública
Apresentação do SAEO na Administração PúblicaApresentação do SAEO na Administração Pública
Apresentação do SAEO na Administração Pública
Marco Rosner
 
[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
 
QConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestruturaQConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestrutura
Diego Pacheco
 
Alm open source
Alm open sourceAlm open source
Alm open source
Bruno Souza
 

Destaque (20)

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
 
Git vs cvs ece2011
Git vs cvs ece2011Git vs cvs ece2011
Git vs cvs ece2011
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
Github git-cheat-sheet
Github git-cheat-sheetGithub git-cheat-sheet
Github git-cheat-sheet
 
Git - Controle de Versões do Jeito Certo
Git - Controle de Versões do Jeito CertoGit - Controle de Versões do Jeito Certo
Git - Controle de Versões do Jeito Certo
 
Git - The Incomplete Introduction
Git - The Incomplete IntroductionGit - The Incomplete Introduction
Git - The Incomplete Introduction
 
GCS - Aula 09 - GCS Ágil
GCS - Aula 09 - GCS ÁgilGCS - Aula 09 - GCS Ágil
GCS - Aula 09 - GCS Ágil
 
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVNControle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
 
GCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos PrincipaisGCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos Principais
 
Workshop sistema de versionamento de código - git
Workshop  sistema de versionamento de código - gitWorkshop  sistema de versionamento de código - git
Workshop sistema de versionamento de código - git
 
Controle de Mudanças com GitHub
Controle de Mudanças com GitHubControle de Mudanças com GitHub
Controle de Mudanças com GitHub
 
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
 
Introdução ao Sistema de Controle de Versão
Introdução ao Sistema de Controle de VersãoIntrodução ao Sistema de Controle de Versão
Introdução ao Sistema de Controle de Versão
 
Controle de versão com GIT
Controle de versão com GITControle de versão com GIT
Controle de versão com GIT
 
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version ControlJoomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
 
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataformaWine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
 
Apresentação do SAEO na Administração Pública
Apresentação do SAEO na Administração PúblicaApresentação do SAEO na Administração Pública
Apresentação do SAEO na Administração Pública
 
[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
 
QConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestruturaQConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestrutura
 
Alm open source
Alm open sourceAlm open source
Alm open source
 

Semelhante a Sistemas de Controle de Versão

Apresentação Git
Apresentação GitApresentação Git
Apresentação Git
Thiago Melo
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágil
Claudia Melo
 
Aula 4 gerência de configuração de software1
Aula 4   gerência de configuração de software1Aula 4   gerência de configuração de software1
Aula 4 gerência de configuração de software1
Tiago Vizoto
 
CVS - Slides Parte 1 - Introdução
CVS - Slides Parte 1 - IntroduçãoCVS - Slides Parte 1 - Introdução
CVS - Slides Parte 1 - Introdução
Marden Neubert
 
Evoluindo bancos de dados com flyway
Evoluindo bancos de dados com flywayEvoluindo bancos de dados com flyway
Evoluindo bancos de dados com flyway
Vitor Albuquerque
 
Curso de CVS - Parte 3 - Uso Básico
Curso de CVS - Parte 3 - Uso BásicoCurso de CVS - Parte 3 - Uso Básico
Curso de CVS - Parte 3 - Uso Básico
Marden Neubert
 
Porque todo programador deve utilizar Sistema de Controle de Versão?
Porque todo programador deve utilizar Sistema de Controle de Versão?Porque todo programador deve utilizar Sistema de Controle de Versão?
Porque todo programador deve utilizar Sistema de Controle de Versão?
Marco Rosner
 
Curso de CVS - Parte 4 - Avançado
Curso de CVS - Parte 4 - AvançadoCurso de CVS - Parte 4 - Avançado
Curso de CVS - Parte 4 - Avançado
Marden Neubert
 
Cvs everton
Cvs   evertonCvs   everton
Cvs everton
Everton Buzzi
 
Git e Github - Comandos e conceitos básicos
Git e Github - Comandos e conceitos básicos Git e Github - Comandos e conceitos básicos
Git e Github - Comandos e conceitos básicos
Jonathan Célio
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
tdc-globalcode
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open Source
Globalcode
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
Rudson Kiyoshi Souza Carvalho
 
Evoluindo bancos de dados com Flyway
Evoluindo bancos de dados com FlywayEvoluindo bancos de dados com Flyway
Evoluindo bancos de dados com Flyway
Vitor Albuquerque
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
Wagner Zaparoli
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
Carlos Gonzaga
 
Maven 2
Maven 2Maven 2
Git hub and Laravel
Git hub and Laravel Git hub and Laravel
Git hub and Laravel
Abneusa Manuel
 
Web Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitWeb Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to Git
MozDevz
 
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
Frederico de Figueiredo Siena
 

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

Apresentação Git
Apresentação GitApresentação Git
Apresentação Git
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágil
 
Aula 4 gerência de configuração de software1
Aula 4   gerência de configuração de software1Aula 4   gerência de configuração de software1
Aula 4 gerência de configuração de software1
 
CVS - Slides Parte 1 - Introdução
CVS - Slides Parte 1 - IntroduçãoCVS - Slides Parte 1 - Introdução
CVS - Slides Parte 1 - Introdução
 
Evoluindo bancos de dados com flyway
Evoluindo bancos de dados com flywayEvoluindo bancos de dados com flyway
Evoluindo bancos de dados com flyway
 
Curso de CVS - Parte 3 - Uso Básico
Curso de CVS - Parte 3 - Uso BásicoCurso de CVS - Parte 3 - Uso Básico
Curso de CVS - Parte 3 - Uso Básico
 
Porque todo programador deve utilizar Sistema de Controle de Versão?
Porque todo programador deve utilizar Sistema de Controle de Versão?Porque todo programador deve utilizar Sistema de Controle de Versão?
Porque todo programador deve utilizar Sistema de Controle de Versão?
 
Curso de CVS - Parte 4 - Avançado
Curso de CVS - Parte 4 - AvançadoCurso de CVS - Parte 4 - Avançado
Curso de CVS - Parte 4 - Avançado
 
Cvs everton
Cvs   evertonCvs   everton
Cvs everton
 
Git e Github - Comandos e conceitos básicos
Git e Github - Comandos e conceitos básicos Git e Github - Comandos e conceitos básicos
Git e Github - Comandos e conceitos básicos
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open Source
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Evoluindo bancos de dados com Flyway
Evoluindo bancos de dados com FlywayEvoluindo bancos de dados com Flyway
Evoluindo bancos de dados com Flyway
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Maven 2
Maven 2Maven 2
Maven 2
 
Git hub and Laravel
Git hub and Laravel Git hub and Laravel
Git hub and Laravel
 
Web Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitWeb Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to Git
 
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
 

Último

INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
Faga1939
 
Subindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWSSubindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWS
Ismael Ash
 
Aula combustiveis mais utilizados na indústria
Aula combustiveis mais utilizados na indústriaAula combustiveis mais utilizados na indústria
Aula combustiveis mais utilizados na indústria
zetec10
 
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de   DevOps/CLoudFerramentas que irão te ajudar a entrar no mundo de   DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ismael Ash
 
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docxse38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
ronaldos10
 
Apresentação sobre Deep Web e anonimização
Apresentação sobre Deep Web e anonimizaçãoApresentação sobre Deep Web e anonimização
Apresentação sobre Deep Web e anonimização
snerdct
 

Último (6)

INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
 
Subindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWSSubindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWS
 
Aula combustiveis mais utilizados na indústria
Aula combustiveis mais utilizados na indústriaAula combustiveis mais utilizados na indústria
Aula combustiveis mais utilizados na indústria
 
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de   DevOps/CLoudFerramentas que irão te ajudar a entrar no mundo de   DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
 
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docxse38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
 
Apresentação sobre Deep Web e anonimização
Apresentação sobre Deep Web e anonimizaçãoApresentação sobre Deep Web e anonimização
Apresentação sobre Deep Web e anonimização
 

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;