A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br."— Transcrição da apresentação:

1 Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais

2 Contextualização 2 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 Todo mundo aqui já trabalhou em equipe para produzir um único produto. Então, tinha 2, 3 ou até 4 pessoas “mexendo” no código do mesmo programa. Muitas vezes, isso causa problemas porque nem todo mundo tem possibilidade de fazer programação em pares ou grupos, sei lá. Aí tem sempre alguém que tenta resolver o problema dizendo que “na classe A e B só quem mexe sou eu e tu se vira nas outras”. Só que, no mundo ideal isso poderia resolver os problemas de sincronização conflitante do código. Todo mundo já viveu isso e sabe que, muitas das funcionalidades que você implementa não está ligada só ao módulo do código que você está implementando. E daí, tem que mexer em outras classes que, teoricamente, não estariam sob sua responsabilidade. Quando eu estava no 5º período, fazendo projeto com Guilherme, a gente resolveu fazer o seguinte: toda vez que alguém mexia no código colocava no seu site um arquivo zipado com a data de alteração. Só que daí, no final do projeto, tinha vezes que a gente começava a colocar além da data o horário de modificação. Então, depois eu fazia a comparação com o que eu tinha em casa ou sobrescreveu logo tudo. 2 Renato Novais (IFBA) 20/04/2017 2

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. ” 3 Renato Novais (IFBA) 20/04/2017 3

4 Funcionamento 4 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; 4 Renato Novais (IFBA) 20/04/2017 4

5 Funcionamento 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; 5 Renato Novais (IFBA) 20/04/2017 5

6 Funcionamento 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. 6 Renato Novais (IFBA) 20/04/2017 6

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. 7 Renato Novais (IFBA) 20/04/2017 7

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. 8 Renato Novais (IFBA) 20/04/2017 8

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. 9 Renato Novais (IFBA) 20/04/2017 9

10 CVS integrado ao eclipse
Selecionar perspectiva do CVS 10 Renato Novais (IFBA) 20/04/2017 10

11 CVS integrado ao eclipse
Selecionar perspectiva do CVS 11 Renato Novais (IFBA) 20/04/2017 11

12 CVS integrado ao eclipse
Adicionar um novo Repositório 12 Renato Novais (IFBA) 20/04/2017 12

13 CVS integrado ao eclipse
Adicionar um novo Repositório 13 Renato Novais (IFBA) 20/04/2017 13

14 CVS integrado ao eclipse
Fazer um checkout 14 Renato Novais (IFBA) 20/04/2017 14

15 CVS integrado ao eclipse
Sincronizando... 15 Renato Novais (IFBA) 20/04/2017 15

16 CVS integrado ao eclipse
Commit 16 Renato Novais (IFBA) 20/04/2017 16

17 CVS integrado ao eclipse
Commit 17 Renato Novais (IFBA) 20/04/2017 17

18 CVS integrado ao eclipse
Update 18 Renato Novais (IFBA) 20/04/2017 18

19 CVS serve para... 19 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 19 Renato Novais (IFBA) 20/04/2017 19

20 Atualmente utiliza protocolo HTTP, rodando sobre o apache
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. Atualmente utiliza protocolo HTTP, rodando sobre o apache Cliente Tortoise SVN (stand alone) Plugins para o Eclipse, Netbeans Utilizaremos o SubVersion na prática Renato Novais (IFBA) 20/04/2017

21 ? Perguntas Renato Novais (IFBA) Renato Novais (IFBA) 20/04/2017

22 Referências Manual do cvs: Tutorial CVS: Download CVS: 22
Está transparência foi preparada baseada no material do Professor Francisco Borges Manual do cvs: Tutorial CVS: Download CVS: 22 Renato Novais (IFBA) 20/04/2017 22


Carregar ppt "Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais renatoln@yahoo.com.br."

Apresentações semelhantes


Anúncios Google