Porque todo programador deve usar Sistema
          de Controle de Versão?


              Marco Rosner
                  ...
Quem sou?
Marco Rosner

- Graduado em Sistemas de
Informação pelo IFAL
- Técnico em Administração e
Projeto de Redes pelo
...
Quem já participou
 de um projeto?
Auto-avaliação

1 – Alguém já sobrescreveu o código de
alguma outra pessoa?

2 – Você sabe quem e em que momento
qualquer ...
Então, você...
Seu chefe...
Bate o desespero!
Mas o que é Sistema de Controle
       de Versão (SCV)?
Qual a importância?

- Compartilhamento de documentos e
versionamento deles
- Permitir trabalho em paralelo e controlar as...
Onde se aplica?



- Wikis (Foswiki, Twiki, Wikipedia...)
- Processadores de texto (Google Docs...)
- CMS (Joomla!, Drupal...
Quem usa?
Conceitos fundamentais




- Repositório

- Cópia de trabalho (Working copy)
Conceitos fundamentais

- Estratégias de compartilhamento
de arquivos

  - Solução 1: Lock-Modify-Unlock
    ●   Lock pode...
Conceitos fundamentais


- Revisões
  ●   calc/Makefile:2
           integer.c:2
           button.c:3


- Revisões Mistas...
Conceitos fundamentais
              (Terminologia)
- Check out/Clone
   ●   Cria uma CT do repositório*
- Update
   ●   A...
Quando utilizar sistema
           centralizado?



- Desenvolvimento local
- Equipe pouco numerosa
- Projetos de pequeno ...
Quando utilizar sistema
           distribuído?


- Desenvolvimento distribuído
- Equipe muito numerosa
- Projetos de gran...
Dúvidas?



Sugestões?


 Elogios?
Obrigado!




    Marco Rosner
marco.rosner@gmail.com
Próximos SlideShares
Carregando em…5
×

Porque todo programador deve utilizar Sistema de Controle de Versão?

2.619 visualizações

Publicada em

Estes slides foram apresentados no FREESON 2009, evento de software livre organizado pelo CESMAC, na palestra entitulada "Porque todo programador deve utilizar Sistema de Controle de Versão?"

Publicada em: Educação
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.619
No SlideShare
0
A partir de incorporações
0
Número de incorporações
11
Ações
Compartilhamentos
0
Downloads
33
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Porque todo programador deve utilizar Sistema de Controle de Versão?

  1. 1. Porque todo programador deve usar Sistema de Controle de Versão? Marco Rosner IFAL
  2. 2. Quem sou? Marco Rosner - Graduado em Sistemas de Informação pelo IFAL - Técnico em Administração e Projeto de Redes pelo CET/IFAL - Analista e desenvolvedor do SAEO - Desenvolvedor do Brisa - Organizador do Debian Festival
  3. 3. Quem já participou de um projeto?
  4. 4. Auto-avaliação 1 – Alguém já sobrescreveu o código de alguma outra pessoa? 2 – Você sabe quem e em que momento qualquer parte do sistema foi alterado? 3 – É difícil compartilhar o código fonte com todos da equipe?
  5. 5. Então, você...
  6. 6. Seu chefe...
  7. 7. Bate o desespero!
  8. 8. Mas o que é Sistema de Controle de Versão (SCV)?
  9. 9. Qual a importância? - Compartilhamento de documentos e versionamento deles - Permitir trabalho em paralelo e controlar as modificações - Facilidade de aplicar manutenção e gerenciar a qualidade - Possibilidade de trabalhar em equipe (e agregar mais pessoas a equipe)
  10. 10. Onde se aplica? - Wikis (Foswiki, Twiki, Wikipedia...) - Processadores de texto (Google Docs...) - CMS (Joomla!, Drupal, Mambo, Plone...) - Projetos de softwares - Documentação de software
  11. 11. Quem usa?
  12. 12. Conceitos fundamentais - Repositório - Cópia de trabalho (Working copy)
  13. 13. Conceitos fundamentais - Estratégias de compartilhamento de arquivos - Solução 1: Lock-Modify-Unlock ● Lock pode causar problemas administrativos ● Locking pode causar serialização desnecessária - Solução 2: Copy-Modify-Merge
  14. 14. Conceitos fundamentais - Revisões ● calc/Makefile:2 integer.c:2 button.c:3 - Revisões Mistas ● Atualizações e Submissões são separadas.
  15. 15. Conceitos fundamentais (Terminologia) - Check out/Clone ● Cria uma CT do repositório* - Update ● Atualiza uma CT com a última versão do repositório - Commit ● Ato de submeter as alterações feitas na CT para o repositório - Branch ● Conjunto de arquivos separados do mainstream do projeto para ser trabalhado separadamente. - Trunk ● Linha principal de trabalho do projeto
  16. 16. Quando utilizar sistema centralizado? - Desenvolvimento local - Equipe pouco numerosa - Projetos de pequeno e médio porte - Necessidade de maior controle da codificação
  17. 17. Quando utilizar sistema distribuído? - Desenvolvimento distribuído - Equipe muito numerosa - Projetos de grande porte - Necessidade de dividir a equipe em sub- equipes
  18. 18. Dúvidas? Sugestões? Elogios?
  19. 19. Obrigado! Marco Rosner marco.rosner@gmail.com

×