Seminário de Andamento
Módulo: Merge
Grupo 5
André Ribeiro Coelho
Rafael de Souza Santos
Módulo: Merge

Responsabilidade
• Possibilitar a junção de ramos assim como a junção
de desenvolvimento paralelo nos espaços de
trabalho


Clientes
• Espaço de trabalho
• API Servidor
Dependências
• Algoritmos de diff e patch
2
Tipos de Merge

Two-way x Three-way
Yang, 1994
3
Conflitos

Textual

Sintático

Semântico
4
Conflitos
5
Técnicas de Detecção de
Conflitos

Matrizes Merge

Conjuntos de Conflitos

Técnicas de detecção de conflitos semânticos
6
Algoritmos Delta


Merge baseado em texto tipicamente o utiliza
para reduzir o espaço em disco
Tipos de delta
 simétrico vs direto
 textual, sintático ou semântico
 forward ou backward
 state-based ou change-based
7
Algoritmos Delta

Simétrico vs direto
 simétrico
 calcula a diferença entre dois arquivos
como um conjunto de diferença
 direto
 especifica a diferença através de
operações de modificação
8
Algoritmos Delta

Textual, sintático ou semântico
 textual
 diferença entre dois arquivos
 sintático
 diferença entre duas representações
sintáticas
 semântico
 diferença semântica entre duas versões
9
Algoritmos Delta

Forward ou backward
 forward
 armazena a primeira versão e as demais
são geradas através de deltas
 backward
 armazena a última versão e as
anteriores são geradas através de deltas
10
Algoritmos Delta

State-based ou change-based
 state-based
 calcula a diferença entre a revisão e o
seu ancestral e armazena somente a
diferença
 change-based
 especifica a diferença através de
operações de modificação
11
Algoritmos Delta

change-based
 embedded deltas
 mudanças são anotadas em cada
versão de maneira a especificar suas
diferenças relativas a outra versão
 change-set
 mudanças podem ser especificadas
independentemente das versões as
quais elas são aplicadas
12
Decisões de projeto



Independentes de domínio e customizáveis
 o quão independente do domínio é?
Granularidade
 o quão de detalhe o conflito detecta?
Escalabilidade e eficiência
 em termos de processamento e uso de
memória quando o tamanho do software
aumenta como se comporta?
13
Decisões de projeto

Grau de automatização
 manual?
 semi-automática?
 automática?
14
Definição da Interface

1º release
 Merge de arquivos ou diretórios
 File Método(File base, File arq1, File
arq2)
 Dir Método(Dir base, Dir arq1, Dir arq2)
 Merge de arquivos texto
 Granularidade na linha
 Módulo isolado
15
Definição da Interface

2º release
 Módulo mais integrado
 Tentativa de maior relação com o algoritmo
de diff
 Levar em consideração a estratégia de
armazenamento se possível
 Estudo de outras alternativas
16
Referências

Mens, T. A State-of-the-Art Survey on Software Merging. IEEE Trans. Softw. Eng.,
v.28, n.5, p.449-462. 2002

Yang, W. How to Merge Program Texts. J. Systems and Software, vol. 27, no. 2,
pp. 129-135, 1994

Horwitz, S. Identifying the Semantic and Textual Differences Between Two
Versions of a Program. Proc. SIGPLAN ‘90 Conf. Programming Language Design
and Implementation, pp. 234-244, 1990
17
Seminário de Andamento
Módulo: Merge
Grupo 5
André Ribeiro Coelho
Rafael de Souza Santos
Download

Seminário de Andamento Módulo: Merge Grupo 5 André