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  p...
E agora?!
Roteiro1.   Conceito2.   Terminologias e Comandos;3.   Características e Usabilidade;4.   Subversion;5.   Comandos princip...
Conceito Um software com a finalidade de gerenciar diferentes versões no desenvolvimento de um documento qualquer. Esses s...
Idéia Geral
Terminologia Básica• Repositório: Local onde são armazenados os arquivos  mantidos sob controle de versão;• Área de trabal...
Terminologia Básica• Check-out: Operação inicial de criar uma área  de trabalho a partir de um módulo do  repositório;• Up...
Pontos positivos• Possibilitar compartilhamento de código-fonte e  desenvolvimento distribuído;• Permitir controle de modi...
E mais...• Monitorar e registrar todas as alterações em um  ou mais arquivos;• Permitir que as alterações possam ser  exam...
Características de um SCV• Pode ser centralizado ou não, onde as alterações  sempre passam por um servidor central;• Pode ...
Tipos de SCV - Centralizado• O controle de versão centralizado segue  a topologia em estrela, havendo apenas  um único rep...
Centralizado
Tipos de SCV - Distribuído• São vários repositórios autônomos e  independentes, um para cada desenvolvedor.  Cada repositó...
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, cont...
Características•   É um sistema centralizado;•   O repositório pode ser local ou remoto;•   O acesso ao repositório é feit...
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;•...
Principais Comandos• checkout: obter uma cópia de um diretório  para a área de trabalho local;• commit: enviar as alteraçõ...
Principais Comandos• import: importar para o repositório uma árvore  de diretórios sem versionamento;• info: exibir inform...
Praticando...
Próximos SlideShares
Carregando em…5
×

Sistemas de Controle de Versão

1.219 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.219
No SlideShare
0
A partir de incorporações
0
Número de incorporações
60
Ações
Compartilhamentos
0
Downloads
32
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Sistemas de Controle de Versão

  1. 1. Sistemas de Controle de Versão Conceitos, Subversion e prática•Édipo Oliveira Maciel•Jonathas Silva•Leonardo Alexandre
  2. 2. 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?
  3. 3. E agora?!
  4. 4. Roteiro1. Conceito2. Terminologias e Comandos;3. Características e Usabilidade;4. Subversion;5. Comandos principais e específicos;6. Na prática;
  5. 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.
  6. 6. Idéia Geral
  7. 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. 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. 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. 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. 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. 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.
  13. 13. Centralizado
  14. 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. 15. Tipos de SCV - Distribuído
  16. 16. Ferramenta Subversion
  17. 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. 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. 19. Características• As revisões são sempreglobais,começando em 0(com o repositório vazio)
  20. 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. 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. 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;
  23. 23. Praticando...

×