linguagem técnica ii scm software configuration management aula 03 prof. renato novais...

22
Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais [email protected]

Upload: katia-almada-damasio

Post on 07-Apr-2016

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

Linguagem Técnica II

SCM Software Configuration Management

Aula 03

Prof. Renato [email protected]

Page 2: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

2

Contextualização

• Equipe composta por mais de uma pessoa• Sincronização de código conflitante• Várias versões• Backup• Código pertence a todos• Bugs inseridos depois de uma pequena modificação

Page 3: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

3

Concurrent Versions System

• O CVS é sistema de controle de versão;

• Gerência de Configuração de código;

• Permite que pessoas dispersas trabalhem no mesmo código.

• “CVS is not a substitute for management... for developer communication. ”

Page 4: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

4

Funcionamento

• CVS utiliza uma arquitetura cliente-servidor:– um servidor armazena a(s) versão(ões) atuais do projeto e seu

histórico;– clientes se conectam a esse servidor para obter uma cópia completa

do projeto, trabalhar nessa cópia e então devolver suas modificações.

• Tipicamente, cliente e servidor devem estar conectados por uma rede local de computadores;

• Vários clientes podem editar cópias do mesmo projeto de maneira concorrente. Quando eles confirmam suas alterações, o servidor tenta fazer uma fusão delas;

Page 5: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

5

• Se a fusão não for possível, por exemplo porque mais de um cliente tentou executar alterações na mesma linha do documento, o servidor apenas executa a primeira alteração e informa ao responsável pela segunda alteração que houve conflito, e que é necessário uma intervenção humana;

• Se a validação da alteração for bem sucedida, o número de versão de cada cliente arquivo envolvido é incrementado, e o servidor CVS escreve uma linha de observação (fornecida pelo usuário), a data e o autor das alterações em seus arquivos de log;

Funcionamento

Page 6: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

6

• Clientes podem comparar diferentes versões de um arquivo, pedir um histórico completo das alterações, ou baixar uma determinada versão do projeto, ou de uma data específica, não necessariamente a versão mais atual;

• Clientes também podem usar o comando "update" para manter suas cópias locais atualizadas com a última versão do servidor. Isso elimina a necessidade de se fazer diversos downloads de todo o projeto;

• O CVS também pode manter diferentes "estados" do projeto. Por exemplo, uma versão do software pode ser um desses estados, usado para correção de bugs, enquanto outra versão, que está realmente sob desenvolvimento, sofrendo alterações e tendo novas funcionalidades implementadas, forma o outro estado.

Funcionamento

Page 7: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

7

Terminologia

• Module: é uma hierarquia de diretórios. Geralmente um projeto de software existe como um simples módulo dentro do repositório.

• Release: é a versão de um produto inteiro.• Revision: é a numeração atribuída pelo CVS a cada modificação de

um arquivo.• O Checkout: é usado para denominar o primeiro download de um

módulo inteiro a partir do repositório CVS.• Commit: envio das modificações feitas pelo usuário ao repositório

CVS.

Page 8: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

8

Terminologia

• Export: é o download de um módulo inteiro a partir de um repositório CVS, sem os arquivos administrativos CVS. Módulos exportados não ficam sob controle do CVS.

• Import: é usado para designar a criação de um módulo inteiro dentro de um repositório CVS através do upload de uma estrutura de diretórios.

• Branch: é uma ramificação no desenvolvimento, usada para descrever o processo de divisão dos arquivos de um projeto em linhas de desenvolvimento independentes. Podendo servir para teste de uma nova funcionalidade ou para projetos destinados a um cliente específico.

Page 9: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

9

Terminologia

• Update: atualização da cópia local do trabalho através do download das modificações feitas por outros usuários no repositório.

• Merge: é a fusão de modificações feitas por diferentes usuários na cópia local de um mesmo arquivo. Sempre que alguém altera o código, é necessário realizar um update antes do commit, de modo que seja feito o merge — ou a fusão — das mudanças.

Page 10: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

10

CVS integrado ao eclipse

• Selecionar perspectiva do CVS

Page 11: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

11

• Selecionar perspectiva do CVS

CVS integrado ao eclipse

Page 12: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

12

• Adicionar um novo Repositório

CVS integrado ao eclipse

Page 13: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

13

• Adicionar um novo Repositório

CVS integrado ao eclipse

Page 14: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

14

• Fazer um checkout

CVS integrado ao eclipse

Page 15: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

15

• Sincronizando...

CVS integrado ao eclipse

Page 16: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

16

• Commit

CVS integrado ao eclipse

Page 17: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

17

• Commit

CVS integrado ao eclipse

Page 18: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

18

• Update

CVS integrado ao eclipse

Page 19: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

19

CVS serve para...

• Otimizar o processo de sincronização do código

• Colocar tudo que for de poder de todos no cvs: site, código, artefatos..

• CVS não é a solução para todos os problemas

• CVS não substitui o diálogo e reuniões da equipe

• CVS não é uma política de backup suficiente

Page 20: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

SubVersion

• Subversion (também conhecido por svn) é um sistema de controle de versão que tem ganhado bastante adeptos nos últimos tempos. Pretende-se ser mais robusto que o CVS. http://subversion.tigris.org

• Atualmente utiliza protocolo HTTP, rodando sobre o apache

• Cliente Tortoise SVN (stand alone) http://tortoisesvn.tigris.org

• Plugins para o Eclipse, Netbeans

• Utilizaremos o SubVersion na prática

Page 21: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA) 27/04/23Renato Novais (IFBA)

?

Perguntas

Page 22: Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br

27/04/23Renato Novais (IFBA)

22

Referências

• Está transparência foi preparada baseada no material do Professor Francisco Borges

• Manual do cvs: – http://ximbiot.com/cvs/wiki/index.php?title=CVS--

Concurrent_Versions_System_v1.12.12.1

• Tutorial CVS:– http://www.ead.unicamp.br/minicurso/cvs/texto/tabela_conteudo.html

• Download CVS:– http://linuxforfun.net/2008/04/27/cvsd-setup-cvs-pserver