Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
EMF Compare/Specifications/FeatureMap
Contents
Evolution Specification: FeatureMaps in EMF Compare
Current status is DRAFT
Preamble
Summary: Define how to represent feature maps changes.
Introduction
The following metamodel will be use for the specification.
Detailed Specification
Addition/deletion of a value for a given key
Solution 1: 2 differences
In the core:
- 1 difference on the orders : EFeatureMapEntry attribute
- 1 difference on the standardOrders/priorityOrders reference (derived, transient, volatile)
- the merge of a diff implies the merge of the other diff (equivalence relation)
- if the changes are too heavy in the code, add a new type of Diff: FeatureMapChange
In the structure merge viewer:
- 1 difference on the orders : EFeatureMapEntry attribute
- 1 difference on the standardOrders/priorityOrders reference
- a new FeatureMap filter (that hides the orders : EFeatureMapEntry difference
- when select a diff, the other diff is higlighted in green
In the content merge viewer:
- For the difference on the orders : EFeatureMapEntry attribute: table merge viewer
- For the standardOrders/priorityOrders reference: tree merge viewer
Solution 2: 1 difference
In the core:
- 1 new type of difference: FeatureMapChange
In the structure merge viewer:
- 1 difference on the standardOrders/priorityOrders reference
In the content merge viewer:
- For the standardOrders/priorityOrders reference: tree merge viewer
Key change for a given value
Solution 1: table merge viewer
In the core:
- 1 new type of difference on the the standardOrders/priorityOrders references: FeatureMapKeyChange
In the structure merge viewer:
- 1 new type of difference on the the standardOrders/priorityOrders references: FeatureMapKeyChange
In the content merge viewer:
- table merge viewer
Solution 2: new merge viewer
In the core:
- 1 new type of difference on the the standardOrders/priorityOrders references: FeatureMapKeyChange
- new table merge viewer : FeatureMapKeyContentMergeViewer
In the structure merge viewer:
- 1 new type of difference on the the standardOrders/priorityOrders references: FeatureMapKeyChange
In the content merge viewer:
- new merge viewer: FeatureMapKeyContentMergeViewer (modified TableMergeViewer)
Progression
2-way | Containment | Non containment |
---|---|---|
ADD | ||
DELETE | ||
KEY CHANGE | ||
MOVE in same container | ||
MOVE in different container | ||
MOVE in diff container + KEY CHANGE |
3-way | Containment | Non containment |
---|---|---|
ADD | ||
DELETE | ||
KEY CHANGE | ||
MOVE in same container | ||
MOVE in different container | ||
MOVE in diff container + KEY CHANGE |
Conflicts | Containment | Non containment |
---|---|---|
ADD | ||
DELETE | ||
KEY CHANGE | ||
MOVE in same container | ||
MOVE in different container | ||
MOVE in diff container + KEY CHANGE |
Pseudo-Conflicts | Containment | Non containment |
---|---|---|
ADD | ||
DELETE | ||
KEY CHANGE | ||
MOVE in same container | ||
MOVE in different container | ||
MOVE in diff container + KEY CHANGE |