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?"
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
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?
8. Mas o que é Sistema de Controle
de Versão (SCV)?
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. Onde se aplica?
- Wikis (Foswiki, Twiki, Wikipedia...)
- Processadores de texto (Google Docs...)
- CMS (Joomla!, Drupal, Mambo, Plone...)
- Projetos de softwares
- Documentação de software
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. 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. 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. Quando utilizar sistema
centralizado?
- Desenvolvimento local
- Equipe pouco numerosa
- Projetos de pequeno e médio porte
- Necessidade de maior controle da codificação
17. Quando utilizar sistema
distribuído?
- Desenvolvimento distribuído
- Equipe muito numerosa
- Projetos de grande porte
- Necessidade de dividir a equipe em sub-
equipes