porque todo programador deve utilizar sistema de controle de versão?

Post on 27-Jun-2015

2.187 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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?"

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