Faculdade Batista Brasileira 4º Semestre - Matutino - 2009.2.
Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf ·...
Transcript of Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf ·...
![Page 2: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/2.jpg)
Introdução
• A Engenharia de Software...
– Abordagem disciplinada para o desenvolvimento de software
– Grande diversidade de metodologias
Leonardo Murta Introdução à Gerência de Configuração 2
![Page 3: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/3.jpg)
Introdução
• Ponto em comum nas metodologias:
– refinamentos sucessivos de artefatos
Leonardo Murta Introdução à Gerência de Configuração 3
http://www.colegiosaofrancisco.com.br
![Page 4: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/4.jpg)
Mas aonde ficam esses artefatos?
Leonardo Murta Introdução à Gerência de Configuração 4
Tarefas de Engenharia de
Software
Artefato novo
Repositório
Artefato modificado
Artefato
![Page 5: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/5.jpg)
O que são repositórios?
• Repositórios– Lugar seguro onde artefatos
são depositados
– Permitem armazenamento, busca e recuperação de artefatos
– Servem como um ponto de referência
– Apóiam no aumento da memória organizacional
Leonardo Murta Introdução à Gerência de Configuração 5
![Page 6: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/6.jpg)
Tipos de repositórios
Desenvolvimento Liberação Implantação Produção
Leonardo Murta Introdução à Gerência de Configuração 6
Repositório de fontes
Repositório de executáveis
![Page 7: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/7.jpg)
Potenciais diferenças
Leonardo Murta Introdução à Gerência de Configuração 7
Repositório de fontes
Repositório de executáveis
G
R
A
N
U
L
A
R
I
D
A
D
E
Fina
Grossa
M
O
M
E
N
T
O
Desenvolvimento
Produção
A
C
E
S
S
O
Edição
Leitura
L
O
C
A
L
I
Z
A
Ç
Ã
O
Contexto
Busca
![Page 8: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/8.jpg)
Cenário de utilização
Leonardo Murta Introdução à Gerência de Configuração 8
Repositório de fontes
Repositório de executáveis
![Page 9: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/9.jpg)
Principais sistemas de Gerência de Configuração
Leonardo Murta Introdução à Gerência de Configuração 9
Gerência de configuração de software é uma disciplina para o
controle da evolução de sistemas de software (Susan
Dart, 1991)
Ambiente de Desenvolvimento de Software
Identificação Controle Contabilização Avaliação Liberação
Controle de Modificações
Controle de Versões
Gerenciamento de Construção
Sistemas:
Processos:
Espaço de
trabalho:
Perspectiva de
integração
Perspectiva
gerencial
Perspectiva de
desenvolvimento
![Page 10: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/10.jpg)
Principais sistemas de Gerência de Configuração
Leonardo Murta Introdução à Gerência de Configuração 10
Gerência de configuração de software é uma disciplina para o
controle da evolução de sistemas de software (Susan
Dart, 1991)
Ambiente de Desenvolvimento de Software
Identificação Controle Contabilização Avaliação Liberação
Controle de Modificações
Controle de Versões
Gerenciamento de Construção
Sistemas:
Processos:
Espaço de
trabalho:
Perspectiva de
integração
Perspectiva
gerencial
Perspectiva de
desenvolvimento
Nosso foco aqui no curso...
![Page 11: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/11.jpg)
Exercício
1. Apresentar, na próxima aula, as 5 funções de gerência de configuração, citando exemplos
2. Apresentar, na próxima aula, o sistema de gerenciamento de construção e release, dando algum exemplo usando uma ferramenta (make, ant, maven, etc.)
3. Apresentar, na próxima aula, o que é integração contínua, dando algum exemplo usando uma ferramenta (Cruise Control, Apache Continuum, Hudson, etc.)
Leonardo Murta Introdução à Gerência de Configuração 11
![Page 12: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/12.jpg)
Item de configuração
• Agregação de hardware e/ou software que será passível de gerência de configuração e tratado como um elemento único
• Tipos de ICs
– Produtos de trabalho do projeto
– Produtos de trabalho de processos
• Exemplos: plano de GC, requisitos, modelos, código-fonte, etc.
Leonardo Murta Introdução à Gerência de Configuração 12
![Page 13: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/13.jpg)
Versão
• Instâncias de um mesmo item de configuração que diferem entre si em algo (sinônimo: revisões)
Leonardo Murta Introdução à Gerência de Configuração 13
IC
1.0
IC
1.1
IC
1.2
IC
1.1.1
IC
1.1.2
IC
1.3
IC
2.0
IC
1.4
IC
2.1
![Page 14: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/14.jpg)
Sistema de Gerência de Configuração
Leonardo Murta Introdução à Gerência de Configuração 14
Versão 1
Versão 2
Versão 3
Versão 4
Versão 5
![Page 15: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/15.jpg)
Sistema de Gerência de Configuração
Leonardo Murta Introdução à Gerência de Configuração 15
Versão 1
Versão 2
Versão 3
Versão 4
Versão 5
![Page 16: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/16.jpg)
Sistema de Gerência de Configuração
Leonardo Murta Introdução à Gerência de Configuração 16
Versão 1
Versão 2
Versão 3
Versão 4
Versão 5
![Page 17: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/17.jpg)
Configuração
• Um conjunto de versões de Itens de Configuração (IC), onde existe somente uma versão selecionada para cada IC do conjunto
• Uma configuração pode ser vista como um IC composto de outros ICs
• Exemplos– Configuração do sistema– Configuração do processo– Configuração do módulo X– Configuração dos requisitos do sistema– Configuração do código fonte
Leonardo Murta Introdução à Gerência de Configuração 17
![Page 18: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/18.jpg)
Configuração x versão
• Genericamente– O sistema S é composto pelos arquivos X, Y e Z
• Concretamente– A configuração 5 do sistema S é composta pela versão 2 do
arquivo X, versão 4 do arquivo Y e versão 6 do arquivo Z
Leonardo Murta Introdução à Gerência de Configuração 18
Configuração Versão
IC composto IC primitivo
IC
![Page 19: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/19.jpg)
Configuração x versão
Leonardo Murta Introdução à Gerência de Configuração 19
IC composto
Conf. 1
Conf. 2
Conf. 3
IC primitivo 1 IC primitivo 2 IC primitivo 3
V.1
V.2
V.3
V.4
V.1
V.2
V.1
V.2
V.3
![Page 20: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/20.jpg)
Controle de versões
Leonardo Murta Introdução à Gerência de Configuração 20
Repositório
Item de Configuração
Como armazenar?
Como permitir colaboração?
![Page 21: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/21.jpg)
Mecanismos de armazenamento
Leonardo Murta Introdução à Gerência de Configuração 21
v.3
v.2
v.1
Completo
delta 12
v.1
Forward
delta 23
delta 32
v.3
Reverse
delta 21
In-line
v.1 v.2/3
v.1/2 v.3
![Page 22: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/22.jpg)
Controle de concorrência
Leonardo Murta Introdução à Gerência de Configuração 22
m.3
m.2
m.1
Pessimista
junção
m.1
Otimista Misto
m.2 m.3
junção
m.1 m.2 m.3
![Page 23: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/23.jpg)
Ramos (branches)
• Versões que não seguem a linha principal de desenvolvimento
• Fornecem isolamento para o processo de desenvolvimento – Ramos usualmente são migrados à linha principal de
desenvolvimento– A migração pode ser complicada no caso de isolamento longo
• Características dos ramos se comparados a espaços de trabalho– compartilhados por outras pessoas (espaços de trabalho são
isolados)– residem no servidor (espaços de trabalho residem no cliente)– históricos (espaços de trabalho são momentâneos)– permanentes (espaços de trabalho temporários)
Leonardo Murta Introdução à Gerência de Configuração 23
![Page 24: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/24.jpg)
Junção
• Processo de migração de
– Espaços de trabalho
– Ramos
Leonardo Murta Introdução à Gerência de Configuração 24
Linha 1Linha 2Linha 3
Linha 1’Linha 2
<Linha 1> ou <Linha 1’>?Linha 2<Linha 3> ou nada?
Linha 1Linha 2Linha 3
Linha 1’Linha 2
Linha 1’Linha 2Linha 3
Linha 1Linha 2
2-way merge 3-way merge
![Page 25: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/25.jpg)
Introdução à Gerência de Configuração 25
Exemplo(junção no Eclipse)
Leonardo Murta
![Page 26: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/26.jpg)
Baseline
• Configuração revisada e aprovada que serve como base para uma próxima etapa de desenvolvimento e que somente pode ser modificada via processo formal de GCS
• São estabelecidas ao final de cada fase de desenvolvimento– Análise (functional)– Projeto (allocated)– Implementação (product)
• Momento de criar: balanceamento entre controle e burocracia
Leonardo Murta Introdução à Gerência de Configuração 26
![Page 27: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/27.jpg)
Baseline (níveis de controle)
Leonardo Murta Introdução à Gerência de Configuração 27
Coordenação c/ auditoria
Controle
Informal:•Pré baseline•Sem requisição•Sem aprovação•Sem verificação•Ágil•Ad-hoc
Formal:•Pós baseline•Com requisição•Com aprovação•Com verificação•Burocrático•Planejado
Nível de controle
![Page 28: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/28.jpg)
Baseline (níveis de controle)
Req. Análise Projeto Análise Projeto Análise Projeto
1 Inform. - Formal Inform. Formal Formal
2 - - Inform. - Formal Inform.
Leonardo Murta Introdução à Gerência de Configuração 28
Requisito 1 Análise ProjetoBaseline 1:
•An. Req. 1
Requisito 2 Análise Projeto
Tempo
Baseline 2:•An. Req. 1•Pr. Req. 1•An. Req. 2
![Page 29: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/29.jpg)
Controle de modificações
• Tarefas
– Solicitação de modificação
– Classificação da modificação
– Análise da modificação
– Avaliação da modificação
– Implementação da modificação
– Verificação da modificação
– Geração de baseline
Leonardo Murta Introdução à Gerência de Configuração 29
![Page 30: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/30.jpg)
Leonardo Murta Introdução à Gerência de Configuração 30
Controle de modificações
[Leon, 2000] Requisição de modificação
![Page 31: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/31.jpg)
Leonardo Murta Introdução à Gerência de Configuração 31
Controle de modificações
[White, 2000] Janela de criação de formulários do ClearQuest
![Page 32: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/32.jpg)
Leonardo Murta Introdução à Gerência de Configuração 32
Controle de modificações
• O critério de classificação da modificação deve estar explicitado no plano de GC
• A classificação visa priorizar modificações mais importantes (críticas, fatais, não
fatais, cosméticas)
• A análise visa relatar os impactos em custo, cronograma, funcionalidades, etc.
da implementação da modificação
• Caso a análise conclua que não existe chance de aprovar a modificação (casos
extremos), pode ocorrer rejeição antes da avaliação para poupar custos no
processo
![Page 33: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/33.jpg)
Leonardo Murta Introdução à Gerência de Configuração 33
Controle de modificações
[Leon, 2000] Análise de modificação
![Page 34: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/34.jpg)
Leonardo Murta Introdução à Gerência de Configuração 34
Controle de modificações
• A avaliação utilizará a requisição de modificação e o laudo da
análise para tomar a decisão
– A requisição pode ser aceita, rejeitada ou adiada
• A implementação deve ser seguida por testes de unidade
• Durante a verificação, devem ser aplicados testes de sistema
• Após a geração da nova baseline, deve ser decidido se ela será considerada uma nova liberação
![Page 35: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/35.jpg)
Controle de modificações
• Caso especial: Correções emergenciais
– No caso de correções emergenciais, podem ser criados ramos sem a necessidade do processo formal
– Em algum momento esses ramos deverão sofrer junção para a linha principal de desenvolvimento
– Esse procedimento deve estar explicitado no processo!
Leonardo Murta Introdução à Gerência de Configuração 35
![Page 36: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/36.jpg)
Controle de modificações
• Caso especial: Defeitos– Alguns sistemas tratam defeitos de forma diferente
das demais requisições
– A correção de defeitos é um tratamento sintomático
– É importante descobrir o real motivo para o acontecimento do defeito para possibilitar a prevenção de defeitos futuros
– A análise de causa é útil para descobrir falhas no processo de desenvolvimento (e.g. falta de treinamento, padrões inadequados, ferramentas inadequadas)
Leonardo Murta Introdução à Gerência de Configuração 36
![Page 37: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/37.jpg)
Leonardo Murta Introdução à Gerência de Configuração 37
Exemplo de ferramentas de controle de versões
• Livre– Aegis– Bazaar– CVS– Git– Mercurial– Subversion
• Comercial– BitKeeper (BitMover)– ClearCase (IBM Rational)– Perforce– PVCS (Serena)– StarTeam (Borland)– Synergy/CM (Telelogic)– Visual SourceSafe (Microsoft)– Team Foundation Server (Microsoft)
![Page 38: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/38.jpg)
Leonardo Murta Introdução à Gerência de Configuração 38
Exemplo de ferramentas de controle de modificações
• Livre– Bugzilla– Mantis– Roundup– Scarab– Trac
• Comercial– ClearQuest (IBM Rational)– JIRA (Atlassian)– StarTeam (Borland)– Synergy/Change (Telelogic)– TeamTrack (Serena)– Team Foundation Server (Microsoft)
![Page 39: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/39.jpg)
Analisando mais a fundo uma ferramenta popular...
Leonardo Murta Introdução à Gerência de Configuração 39
![Page 40: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/40.jpg)
Histórico
• Projeto iniciado em 2000
– Iniciativa da CollabNet
– Open-Source
• Intuito de substituir o CVS
– Similar no uso
– Melhor na implementação
• Auto controlado desde agosto de 2001
Leonardo Murta Introdução à Gerência de Configuração 40
![Page 41: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/41.jpg)
Características
• Versionamento de diretórios
• Copia, renomeação e movimentação com histórico
• Check-ins atômicos
• Versionamento de meta-dados
• Acesso via http/https
• Uso extensivo de deltas– Delta de binários
– Delta bidirecional na comunicação cliente/servidor
Leonardo Murta Introdução à Gerência de Configuração 41
![Page 42: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/42.jpg)
Problema da concorrência
Leonardo Murta Introdução à Gerência de Configuração 42
![Page 43: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/43.jpg)
Política pessimista
Leonardo Murta Introdução à Gerência de Configuração 43
![Page 44: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/44.jpg)
Política pessimista
• Problemas administrativos– Bloqueios esquecidos podem atrasar o andamento do projeto
• Problemas de serialização desnecessária– Em alguns casos, as modificações atuam sobre partes
independentes dos arquivos bloqueados
• Falsa sensação de segurança– Dependências semânticas podem cruzar a fronteira de arquivos
• Bloqueios são necessários– Quando se trata de arquivos que não podem ser combinados
Leonardo Murta Introdução à Gerência de Configuração 44
![Page 45: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/45.jpg)
Política otimista (1/2)
Leonardo Murta Introdução à Gerência de Configuração 45
![Page 46: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/46.jpg)
Política otimista (2/2)
Leonardo Murta Introdução à Gerência de Configuração 46
![Page 47: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/47.jpg)
Controle de concorrência no Subversion
• Política pessimista e otimista em conjunto– Qualquer artefato pode ser sujeito a bloqueio– Artefatos podem ser demarcados com “necessita de bloqueio”
• Artefatos bloqueados por um desenvolvedor podem ser editados por outros– O commit dos outros somente ocorrerá depois do término do
bloqueio– Os outros deverão fazer merge
• Artefatos bloqueados podem ser “roubados”– Bloqueio apoia à comunicação– Bloqueio não engessa o processo
Leonardo Murta Introdução à Gerência de Configuração 47
![Page 48: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/48.jpg)
Repositório
• Sistema de arquivos versionado– Check-in equivale a uma foto do sistema de arquivos num dado
momento
• Versionamento global– Número de versão dado por commit
– Identificador implícito de conjunto de modificações
• Algoritmo “Bubble up”– Economia de espaço
– Velocidade na atualização
– Controle do histórico
Leonardo Murta Introdução à Gerência de Configuração 48
![Page 49: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/49.jpg)
Sistema de arquivo convencional
Leonardo Murta Introdução à Gerência de Configuração 49
Dim
en
sã
o E
SP
AÇ
O
![Page 50: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/50.jpg)
Sistema de arquivo versionado
Leonardo Murta Introdução à Gerência de Configuração 50
Dim
en
sã
o E
SP
AÇ
O
Dimensão TEMPO
![Page 51: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/51.jpg)
Versionamento global
• O repositório é mais que um conjunto de arquivos independentes
– Mudança de versionamento de arquivos para versionamento do repositório
– Versão N é o estado do repositório depois do commit N
– “Versão 5 do arquivo X” passa a ser lido como “arquivo X na versão 5 do repositório”
Leonardo Murta Introdução à Gerência de Configuração 51
![Page 52: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/52.jpg)
Versionamento global
Leonardo Murta Introdução à Gerência de Configuração 52
Repositório (versão 1)
Arquivo1 (versão 1)
Arquivo2 (versão 1)
Arquivo3 (versão 1)
Repositório (versão 2)
Arquivo1 (versão 2)
Arquivo2 (versão 1)
Arquivo3 (versão 1)
Repositório (versão 0)
1º commit
2º commit
Repositório (versão 3)
Arquivo1 (versão 2)
Arquivo2 (versão 3)
Arquivo3 (versão 1)
Arquivo4 (versão 3)
Repositório (versão 4)
Arquivo1 (versão 4)
Arquivo2 (versão 3)
Arquivo3 (versão 4)
Arquivo4 (versão 3)
4º commit3º commit
Arquivo1
Versão 1
Versão 2
Versão 4
Arquivo2
Versão 1
Versão 3
Arquivo3
Versão 1
Versão 4
Arquivo4
Versão 3
Relatório por arquivo
![Page 53: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/53.jpg)
Versionamento global
Leonardo Murta Introdução à Gerência de Configuração 53
Repositório (versão 1)
Arquivo1 (versão 1)
Arquivo2 (versão 1)
Arquivo3 (versão 1)
Repositório (versão 2)
Arquivo1 (versão 2)
Arquivo2 (versão 1)
Arquivo3 (versão 1)
Repositório (versão 0)
1º commit
2º commit
Repositório (versão 3)
Arquivo1 (versão 2)
Arquivo2 (versão 3)
Arquivo3 (versão 1)
Arquivo4 (versão 3)
Repositório (versão 4)
Arquivo1 (versão 4)
Arquivo2 (versão 3)
Arquivo3 (versão 4)
Arquivo4 (versão 3)
4º commit3º commit
1º commit
Arquivo1 adicionado
Arquivo2 adicionado
Arquivo3 adicionado
2º commit
Arquivo1 modificado
3º commit
Arquivo2 modificado
Arquivo4 adicionado
Relatório por commit
4º commit
Arquivo1 modificado
Arquivo3 modificado
![Page 54: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/54.jpg)
Comando log
• Fornece um relatório sobre as versões do repositório– Por arquivo– Por commit
• Exibe, para cada versão– Identificação (número da modificação)– Quem (autor)– Quando (data)– Onde (caminhos)– Como (ação nos caminhos)– O que (mensagem)– Por que (número da solicitação de modificação)
Leonardo Murta Introdução à Gerência de Configuração 54
![Page 55: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/55.jpg)
Comando log
Leonardo Murta Introdução à Gerência de Configuração 55
Exemplo
Sintaxe
svn log [-q] [-v] [-r VERSÃO] [URL]
svn log -q https://reuse.cos.ufrj.br/svn/brecho/trunk/build.xml
r92 | ronaldo | 2007-04-01 17:28:55 -0300 (dom, 01 abr 2007)r91 | paulacibele | 2007-03-19 12:53:47 -0300 (seg, 19 mar 2007)r90 | paulacibele | 2007-03-19 12:44:20 -0300 (seg, 19 mar 2007)r51 | marinho | 2006-01-18 19:03:39 -0200 (qua, 18 jan 2006)r47 | alexrd | 2006-01-07 10:44:46 -0200 (sáb, 07 jan 2006)r37 | mlopes | 2005-09-27 00:46:04 -0300 (ter, 27 set 2005)r31 | alexrd | 2005-09-12 11:15:33 -0300 (seg, 12 set 2005)...
![Page 56: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/56.jpg)
Comando log
Leonardo Murta Introdução à Gerência de Configuração 56
Exemplo
Sintaxe
svn log [-q] [-v] [-r VERSÃO] [URL]
svn log -v -r 92 https://reuse.cos.ufrj.br/svn/brecho
r92 | ronaldo | 2007-04-01 17:28:55 -0300 (dom, 01 abr 2007) | 1 lineCaminhos mudados:
M /trunk/build.xmlM /trunk/src/br/ufrj/cos/reuse/biblioteca/category/CategoryUtil.javaA /trunk/src/br/ufrj/cos/reuse/biblioteca/category/Suggestions.javaM /trunk/src/br/ufrj/cos/reuse/biblioteca/category/dao/HibernateCategoryDAO.java
Issue #234: Troca do algoritmo de sugestão de categorias
![Page 57: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/57.jpg)
Algoritmo “Bubble up”
• Mecanismo interno do Subversion para controle do repositório– Entender esse mecanismo ajuda a entender o funcionamento
do Subversion
• Para um dado commit as ações são– Aplicadas nas folhas– Propagadas para os diretórios pais
• Arquivos e diretórios não afetados pelas modificações são preservados
• Algoritmo utilizado para armazenamento– Reverse delta
Leonardo Murta Introdução à Gerência de Configuração 57
![Page 58: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/58.jpg)
Repositório inicial
Leonardo Murta Introdução à Gerência de Configuração 58
Repositório
1
Diretório 1
Arquivo 1
Diretório 2
Arquivo 2
Arquivo 3
![Page 59: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/59.jpg)
Commit: modificação em um único arquivo
Leonardo Murta Introdução à Gerência de Configuração 59
Repositório
1
Diretório 1
Arquivo 1
Diretório 2
Arquivo 2
Arquivo 3 Arquivo 3
![Page 60: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/60.jpg)
Propagação para o diretório pai
Leonardo Murta Introdução à Gerência de Configuração 60
Repositório
1
Diretório 1
Arquivo 1
Diretório 2
Arquivo 2
Arquivo 3
Diretório 2
Arquivo 3
![Page 61: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/61.jpg)
Criação da nova versão
Leonardo Murta Introdução à Gerência de Configuração 61
Repositório
1 2
Diretório 1
Arquivo 1
Diretório 2
Arquivo 2
Arquivo 3
Diretório 2
Arquivo 3
![Page 62: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/62.jpg)
Commit: adição de um novo arquivo
Leonardo Murta Introdução à Gerência de Configuração 62
Repositório
1 2
Diretório 1
Arquivo 1
Diretório 2
Arquivo 2
Arquivo 3
Diretório 2
Arquivo 3
Arquivo 4
![Page 63: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/63.jpg)
Propagação para o diretório pai
Leonardo Murta Introdução à Gerência de Configuração 63
Repositório
1 2
Diretório 1
Arquivo 1
Diretório 2
Arquivo 2
Arquivo 3
Diretório 2
Arquivo 3
Diretório 1
Arquivo 4
![Page 64: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/64.jpg)
Criação da nova versão
Leonardo Murta Introdução à Gerência de Configuração 64
Repositório
1 2
Diretório 1
Arquivo 1
Diretório 2
Arquivo 2
Arquivo 3
Diretório 2
Arquivo 3
3
Diretório 1
Arquivo 4
![Page 65: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/65.jpg)
Cópia “barata”
• O projeto interno do Subversion visa prover cópias “baratas” de diretório– Os dados não são duplicados
– Conceito semelhante a hard-link do unix
– Somente quando há mudanças, o link é quebrado
– Tempo constante gasto para cópias
• Mecanismo utilizado para– Etiquetas (tags)
– Ramos (branches)
Leonardo Murta Introdução à Gerência de Configuração 65
![Page 66: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/66.jpg)
Versão atual do repositório
Leonardo Murta Introdução à Gerência de Configuração 66
Repositório
5
Diretório 1
Arquivo 1
Diretório 2
Arquivo 2
Arquivo 3
Diretório 3
Arquivo 4
![Page 67: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/67.jpg)
Diretório 2 copiado para dentro do Diretório 1 com outro nome
Leonardo Murta Introdução à Gerência de Configuração 67
Repositório
5
Diretório 1
Arquivo 1
Diretório 2
Arquivo 2
Arquivo 3
Diretório 3
Arquivo 4
Diretório 2’
![Page 68: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/68.jpg)
Conteúdo idêntico ao original
Leonardo Murta Introdução à Gerência de Configuração 68
Repositório
5
Diretório 1
Arquivo 1
Diretório 2
Arquivo 2
Arquivo 3
Diretório 3
Arquivo 4
Diretório 2’
![Page 69: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/69.jpg)
Propagação para o diretório pai
Leonardo Murta Introdução à Gerência de Configuração 69
Repositório
5
Diretório 1
Arquivo 1
Diretório 2
Arquivo 2
Arquivo 3
Diretório 1
Diretório 3
Arquivo 4
Diretório 2’
![Page 70: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/70.jpg)
Criação da nova versão
Leonardo Murta Introdução à Gerência de Configuração 70
Repositório
5 6
Diretório 1
Arquivo 1
Diretório 2
Arquivo 2
Arquivo 3
Diretório 1
Diretório 3
Arquivo 4
Diretório 2’
![Page 71: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/71.jpg)
Layout do repositório
• Layout é uma convenção– Permite mais de um projeto por repositório
– Ajuda a organizar cada projeto
• Layout sugerido– Um diretório por projeto na raiz do repositório
• Layout para cada projeto– Um diretório para o ramo principal: trunk
– Um diretório para os ramos: branches
– Um diretório para as etiquetas: tags
Leonardo Murta Introdução à Gerência de Configuração 71
![Page 72: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/72.jpg)
Layout do repositóriohttps://svn.ic.uff.br/
proj1/trunk/branches/tags/
dissertacoes/fulano/
trunk/branches/tags/
beltrano/trunk/branches/tags/
...
Leonardo Murta Introdução à Gerência de Configuração 72
![Page 73: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/73.jpg)
Etiquetas e Ramos
• Etiquetas (tags)– Cópias “baratas” do trunk para o diretório tags
– Troca de nome pelo nome da etiqueta
– Por convenção, nenhuma edição é feita sobre esse diretório copiado
• Ramos (branches)– Cópias “baratas” do trunk para o diretório branches
– Troca de nome pelo nome do ramo
– Edição no diretório copiado
Leonardo Murta Introdução à Gerência de Configuração 73
![Page 74: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/74.jpg)
Comando copy
• Copia um arquivo ou diretório com histórico entre caminhos no repositório ou espaço de trabalho
• Casos típicos– URL URL: cópia executada atomicamente no servidor,
utilizada usualmente para criar etiquetas e ramos– Diretório local diretório local: cópia feita no cliente e adição
(com histórico) agendada para o próximo commit
Leonardo Murta Introdução à Gerência de Configuração 74
![Page 75: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/75.jpg)
Comando copy
Leonardo Murta Introdução à Gerência de Configuração 75
Exemplo
Sintaxe
svn copy ORIGEM DESTINO [-m MENSAGEM]
svn copy dir1 dir2/novo_dir_1
svn copy https://svn.ic.uff.br/proj1/trunkhttps://svn.ic.uff.br/proj1/branches/1.0.x-m “Criação do ramo 1.0.x”
svn copy https://svn.ic.uff.br/proj1/branches/1.0.xhttps://svn.ic.uff.br/proj1/tags/1.0.1-m “Criação da etiqueta 1.0.1”
![Page 76: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/76.jpg)
Espaço de trabalho
• Diretório comum no sistema de arquivos local
• Guarda uma cópia limpa do checkout (.svn) – Permite algumas operações off-line
– Permite transmissão de diffs para o servidor
• Área isolada das modificações de outros desenvolvedores– Suas modificações podem ser publicadas com commit
– Modificações de outros podem ser incorporadas com update
• Um usuário pode ter vários espaços de trabalho para um mesmo projeto
Leonardo Murta Introdução à Gerência de Configuração 76
![Page 77: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/77.jpg)
Comando check-out
• Constrói um espaço de trabalho a partir de uma versão do repositório (ou parte dela)
Leonardo Murta Introdução à Gerência de Configuração 77
![Page 78: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/78.jpg)
Comando check-out
Leonardo Murta Introdução à Gerência de Configuração 78
Exemplo
Sintaxe
svn checkout [-r VERSÃO] URL [CAMINHO]
svn checkout https://svn.ic.uff.br/proj1/trunk
svn checkout -r 15 https://svn.ic.uff.br/proj1/trunk
svn checkout https://svn.ic.uff.br/proj1/tags/1.0.3 rel1.0.3
![Page 79: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/79.jpg)
Comando commit
• Envia modificações do espaço de trabalho para o repositório– Detecta automaticamente o que mudou
– Libera todos os bloqueios
– Aplica a modificação de forma atômica no repositório
• Pode não conseguir enviar caso algum outro usuário tenha dado commit– Necessário um update
Leonardo Murta Introdução à Gerência de Configuração 79
![Page 80: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/80.jpg)
Comando commit
Leonardo Murta Introdução à Gerência de Configuração 80
Exemplo
Sintaxe
svn commit [-m MENSAGEM] [CAMINHO]
svn commit -m “Adição da versão 1.4.5 do modelo”
svn commit -m “Issue #34: Correção de erro de digitação” src
![Page 81: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/81.jpg)
Comando update
• Atualiza o espaço de trabalho com as últimas modificações existentes no repositório
• Pode encontrar conflitos durante a atualização– É importante verificar cada um dos arquivos atualizados
• Ações sobre o espaço de trabalho– Adição de arquivos (A)– Remoção de arquivos (D)– Atualização de arquivos (U)– Arquivos com conflito (C)– Arquivos combinados (G)
Leonardo Murta Introdução à Gerência de Configuração 81
![Page 82: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/82.jpg)
Comando update
Leonardo Murta Introdução à Gerência de Configuração 82
Exemplo
Sintaxe
svn update [-r VERSÃO] [CAMINHO]
svn update
svn update -r 12
svn update dir1
![Page 83: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/83.jpg)
Comportamento dos comandos
Arquivo
modificado
localmente
Arquivo
modificado no
repositório
Comando
commit
Commando update
Não Não Nenhuma
ação
Nenhuma ação
Não Sim Nenhuma
ação
Versão local substituída
pela versão do repositório
Sim Não Publica a
versão local
no repositório
Nenhuma ação
Sim Sim Falha,
avisando que
o arquivo está
desatualizado
Versão local combinada
com a versão do repositório
Introdução à Gerência de Configuração 83Leonardo Murta
![Page 84: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/84.jpg)
Ciclo básico de trabalho
Leonardo Murta Introdução à Gerência de Configuração 84
Construção do
espaço de trabalho
svn checkout
svn update
svn switch
Implementação
svn add
svn delete
svn copy
svn move
svn lock
svn blame
svn log
Verificação
svn status
svn diff
svn revert
Integração
svn update
svn resolved
svn commit
![Page 85: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/85.jpg)
Junção de ramos
• Deve ser feita em um espaço de trabalho limpo
– Check-out do destino da junção
• Deve ser entendida como diff & apply
• Diff é dependente de ordem
– Diff(A, B): ações necessárias para transformar o caminho A no caminho B
• O diff pode atuar tanto no espaço quanto no tempo
– Espaço: diff entre dois diretórios (copiados de um lugar comum)
– Tempo: diff entre duas versões de um mesmo diretório
Leonardo Murta Introdução à Gerência de Configuração 85
![Page 86: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/86.jpg)
Merge no tempo
• Normalmente usado para ramos
Leonardo Murta Introdução à Gerência de Configuração 86
Espaço de trabalho
apply: ∆1
∆1 = diff(v4, v10)
trunk
1 2
3
6 8 11
124 5 7 109
13 14 15
branches/1.0.x
![Page 87: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/87.jpg)
Merge no espaço
• Normalmente usado para etiquetas
Leonardo Murta Introdução à Gerência de Configuração 87
1.0.0 1.0.1
Espaço de trabalho
apply: ∆1
∆1 = diff(1.0.0, 1.0.1)
trunk
branches/1.0.x
tags
1 2
3 4
6 8 11
125 7 109
13 14 15
![Page 88: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/88.jpg)
Comando merge
• Aplica a diferença entre dois caminhos no espaço de trabalho
• svn merge A B– Calcula as ações que precisam ser feitas para transformar o
caminho A no B– Aplica essas ações no espaço de trabalho
Leonardo Murta Introdução à Gerência de Configuração 88
![Page 89: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/89.jpg)
Comando merge
Leonardo Murta Introdução à Gerência de Configuração 89
Exemplo
Sintaxesvn merge [-c VERSÃO | -r VERSÃO1:VERSÃO2] CAMINHOsvn merge CAMINHO1 CAMINHO2
svn merge -c 23 https://svn.ic.uff.br/proj1/branches/1.0.x
svn merge -c -23 https://svn.ic.uff.br/proj1/branches/1.0.x
svn merge -r 23:29 https://svn.ic.uff.br/proj1/branches/1.0.x
svn merge https://svn.ic.uff.br/proj1/tags/1.0.1https://svn.ic.uff.br/proj1/tags/1.0.2
![Page 90: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/90.jpg)
Ciclo básico de junção
Leonardo Murta Introdução à Gerência de Configuração 90
Construção do
espaço de trabalho
svn checkout
svn update
svn switch
Junção
svn merge
svn blame
svn log
Verificação
svn status
svn diff
svn revert
Integração
svn update
svn resolved
svn commit
![Page 91: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/91.jpg)
Propriedades
• Cada diretório ou arquivo pode ter metadados anexados a ele
– Tuplas <nome, valor>
– Versionados
• Algumas propriedades built-in
– svn:mime-type: tipo do arquivo
– svn:ignore: elementos que não devem ser versionados em um diretório
– svn:needs-lock: indica que o arquivo precisa de política de controle de concorrência pessimista
Leonardo Murta Introdução à Gerência de Configuração 91
![Page 92: Introdução à Gerência de Configuração - ic.uff.brleomurta/courses/2009.2/es2/aula6.pdf · •A Engenharia de Software... –Abordagem disciplinada para o desenvolvimento de](https://reader031.fdocument.pub/reader031/viewer/2022022106/5be1b40c09d3f284098b742b/html5/thumbnails/92.jpg)
Principais Referências Bibliográficas
• Alexis Leon, “A Guide to Software ConfigurationManagement”, Artech House Publishers, 2000.
• Anne Hass, “Configuration Management Principles andPractices”, Boston, MA, Pearson Education, Inc.
• Dart, S., 1991, “Concepts in Configuration Management Systems”, International Workshop on Software Configuration Management (SCM), Trondheim, Norway(June), pp. 1-18.
• Pressman, R. S. (1997). “Software Engineering: A Practitioner's Approach”, McGraw-Hill.
• http://svnbook.red-bean.com/en/1.4• http://subversion.tigris.org/design.html
Leonardo Murta Introdução à Gerência de Configuração 92