SlideShare uma empresa Scribd logo
1 de 23
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 - 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árioFabrício Campos
 
Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversionlekitamura
 
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õesMisael 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çãoMarden Neubert
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVNLuciano Lima
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação DockerAndré Justi
 
Controle de versão
Controle de versãoControle de versão
Controle de versãoZé 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 PIECloves da Rocha
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação mavenAndré Justi
 
SVN - Subversion
SVN - SubversionSVN - Subversion
SVN - SubversionRafael 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, GumpDenis L Presciliano
 
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
 
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 GITGabriel Rubens
 
Git vs cvs ece2011
Git vs cvs ece2011Git vs cvs ece2011
Git vs cvs ece2011da152
 
Github git-cheat-sheet
Github git-cheat-sheetGithub git-cheat-sheet
Github git-cheat-sheetAbdul 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 CertoArthur Zapparoli
 
Git - The Incomplete Introduction
Git - The Incomplete IntroductionGit - The Incomplete Introduction
Git - The Incomplete Introductionrschwietzke
 
GCS - Aula 09 - GCS Ágil
GCS - Aula 09 - GCS ÁgilGCS - Aula 09 - GCS Ágil
GCS - Aula 09 - GCS ÁgilMisael 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 + StatSVNFelipe Queiroz
 
GCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos PrincipaisGCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos PrincipaisMisael 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 - gitThiago Filadelfo
 
Controle de Mudanças com GitHub
Controle de Mudanças com GitHubControle de Mudanças com GitHub
Controle de Mudanças com GitHubBruno 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ãoFernando Machado
 
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 ControlJoomla!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 plataformaPaulo 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úblicaMarco 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ãoMarco 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 infraestruturaDiego Pacheco
 

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: Conceitos e Prática com Subversion

Apresentação Git
Apresentação GitApresentação Git
Apresentação GitThiago Melo
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágilClaudia 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 software1Tiago Vizoto
 
CVS - Slides Parte 1 - Introdução
CVS - Slides Parte 1 - IntroduçãoCVS - Slides Parte 1 - Introdução
CVS - Slides Parte 1 - IntroduçãoMarden Neubert
 
Evoluindo bancos de dados com flyway
Evoluindo bancos de dados com flywayEvoluindo bancos de dados com flyway
Evoluindo bancos de dados com flywayVitor 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ásicoMarden 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çadoMarden Neubert
 
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 OpenSourcetdc-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 SourceGlobalcode
 
Evoluindo bancos de dados com Flyway
Evoluindo bancos de dados com FlywayEvoluindo bancos de dados com Flyway
Evoluindo bancos de dados com FlywayVitor Albuquerque
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de ConfiguraçãoWagner Zaparoli
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
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 GitMozDevz
 

Semelhante a Sistemas de Controle de Versão: Conceitos e Prática com Subversion (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
 

Sistemas de Controle de Versão: Conceitos e Prática com Subversion

  • 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;