porque todo programador deve utilizar sistema de controle de versão?
Post on 27-Jun-2015
2.187 Views
Preview:
DESCRIPTION
TRANSCRIPT
Porque todo programador deve usar Sistema de Controle de Versão?
Marco RosnerIFAL
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
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 parte do sistema foi alterado?
3 – É difícil compartilhar o código fonte com todos da equipe?
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 modificações- Facilidade de aplicar manutenção e gerenciar a qualidade- Possibilidade de trabalhar em equipe (e agregar mais pessoas a equipe)
Onde se aplica?
- Wikis (Foswiki, Twiki, Wikipedia...)- Processadores de texto (Google Docs...)- CMS (Joomla!, Drupal, Mambo, Plone...)- Projetos de softwares- Documentação de software
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 causar problemas administrativos● Locking pode causar serialização desnecessária
- Solução 2: Copy-Modify-Merge
Conceitos fundamentais
- Revisões● calc/Makefile:2
integer.c:2 button.c:3
- Revisões Mistas● Atualizações e Submissões são separadas.
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
Quando utilizar sistema centralizado?
- Desenvolvimento local- Equipe pouco numerosa- Projetos de pequeno e médio porte- Necessidade de maior controle da codificação
Quando utilizar sistema distribuído?
- Desenvolvimento distribuído- Equipe muito numerosa- Projetos de grande porte- Necessidade de dividir a equipe em sub-equipes
Dúvidas?
Sugestões?
Elogios?
Obrigado!
Marco Rosner
marco.rosner@gmail.com
top related