Sistemas de Controle de Versão
Upcoming SlideShare
Loading in...5
×
 

Sistemas de Controle de Versão

on

  • 1,148 views

 

Statistics

Views

Total Views
1,148
Views on SlideShare
1,089
Embed Views
59

Actions

Likes
0
Downloads
27
Comments
0

2 Embeds 59

http://svn-ufam.blogspot.com 58
http://svn-ufam.blogspot.com.br 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Sistemas de Controle de Versão Sistemas de Controle de Versão Presentation Transcript

  • 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 suaequipe 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?!
  • Roteiro1. Conceito2. 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 sempreglobais,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...