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.
Difference between revisions of "EMF Compare/Specifications/FeatureMap"
(→Evolution Specification: handling of FeatureMaps in EMF Compare) |
(→Progression) |
||
(15 intermediate revisions by the same user not shown) | |||
Line 17: | Line 17: | ||
=== Addition/deletion of a value for a given key === | === Addition/deletion of a value for a given key === | ||
− | '''Solution 1: 2 differences | + | '''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: | In the structure merge viewer: | ||
* 1 difference on the orders : EFeatureMapEntry attribute | * 1 difference on the orders : EFeatureMapEntry attribute | ||
* 1 difference on the standardOrders/priorityOrders reference | * 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: | In the content merge viewer: | ||
− | * For the difference on the orders : EFeatureMapEntry | + | * For the difference on the orders : EFeatureMapEntry attribute: table merge viewer |
* For the standardOrders/priorityOrders reference: tree merge viewer | * For the standardOrders/priorityOrders reference: tree merge viewer | ||
Line 33: | Line 39: | ||
'''Solution 2: 1 difference''' | '''Solution 2: 1 difference''' | ||
− | In the | + | In the core: |
* 1 new type of difference: FeatureMapChange | * 1 new type of difference: FeatureMapChange | ||
+ | |||
+ | In the structure merge viewer: | ||
+ | * 1 difference on the standardOrders/priorityOrders reference | ||
In the content merge viewer: | In the content merge viewer: | ||
Line 44: | Line 53: | ||
'''Solution 1: table merge viewer''' | '''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: | In the structure merge viewer: | ||
− | * 1 new type of difference on the the standardOrders/priorityOrders references: | + | * 1 new type of difference on the the standardOrders/priorityOrders references: FeatureMapKeyChange |
In the content merge viewer: | In the content merge viewer: | ||
Line 54: | Line 66: | ||
'''Solution 2: new 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: | In the structure merge viewer: | ||
− | * 1 new type of difference on the the standardOrders/priorityOrders references: | + | * 1 new type of difference on the the standardOrders/priorityOrders references: FeatureMapKeyChange |
In the content merge viewer: | In the content merge viewer: | ||
− | * new merge viewer: | + | * new merge viewer: FeatureMapKeyContentMergeViewer (modified TableMergeViewer) |
[[file:EMFCompare_FeatureMap_6.png]] | [[file:EMFCompare_FeatureMap_6.png]] | ||
+ | |||
+ | === Progression === | ||
+ | |||
+ | {| border="1" | ||
+ | |- | ||
+ | ! align="center" | 2-way | ||
+ | ! align="center" | Containment | ||
+ | ! align="center" | Non containment | ||
+ | |- | ||
+ | | align="left" | ADD | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | DELETE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | KEY CHANGE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in same container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | MOVE in different container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in diff container + KEY CHANGE | ||
+ | | bgcolor="#9d261d" | | ||
+ | | bgcolor="#9d261d" | | ||
+ | |} | ||
+ | |||
+ | {| border="1" | ||
+ | |- | ||
+ | ! align="center" | 3-way | ||
+ | ! align="center" | Containment | ||
+ | ! align="center" | Non containment | ||
+ | |- | ||
+ | | align="left" | ADD | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | DELETE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | KEY CHANGE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in same container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | MOVE in different container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in diff container + KEY CHANGE | ||
+ | | bgcolor="#9d261d" | | ||
+ | | bgcolor="#9d261d" | | ||
+ | |} | ||
+ | |||
+ | {| border="1" | ||
+ | |- | ||
+ | ! align="center" | Conflicts | ||
+ | ! align="center" | Containment | ||
+ | ! align="center" | Non containment | ||
+ | |- | ||
+ | | align="left" | ADD | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | DELETE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | KEY CHANGE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in same container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | MOVE in different container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in diff container + KEY CHANGE | ||
+ | | bgcolor="#9d261d" | | ||
+ | | bgcolor="#9d261d" | | ||
+ | |} | ||
+ | |||
+ | {| border="1" | ||
+ | |- | ||
+ | ! align="center" | Pseudo-Conflicts | ||
+ | ! align="center" | Containment | ||
+ | ! align="center" | Non containment | ||
+ | |- | ||
+ | | align="left" | ADD | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | DELETE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | KEY CHANGE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in same container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | MOVE in different container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in diff container + KEY CHANGE | ||
+ | | bgcolor="#9d261d" | | ||
+ | | bgcolor="#9d261d" | | ||
+ | |} | ||
[[Category:EMF Compare/Specification]] | [[Category:EMF Compare/Specification]] |
Latest revision as of 10:04, 11 June 2014
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 |