Merge Rules for Single-Value Properties
The Semantic Modeler merge rules described in this topic apply to
single-value properties, for example, name, description,
or primitive type. Semantic Modeler's merge strategy evaluates properties independently and
doesn't assign them identity beyond their field name.
Merge Semantics
This section describes how the Semantic Modeler's merge strategy evaluates and handles single-value properties.
- Evaluates each property independently by field name.
- Applies strict value comparison for conflict detection.
- Merges non-overlapping changes automatically.
- Generates conflicts for any incompatible concurrent modification.
- Doesn't support reorder and rename operations for single-value properties.
Global Changes
This table lists the general merge rules for single-value properties.
| Local Branch | Remote Branch | Result |
|---|---|---|
| No change | Change | Keep Remote |
| Change | No change | Keep Local |
| Same change | Same change | Keep |
| Change property value | Change same property value to different than Local branch | Conflict |
Change Conflict Conditions
These change combinations result in merge conflicts.
- Both branches add the same key with different field values.
- Both branches modify the same object differently.
- One branch modifies a key while the other deletes it.
Change Types
This section lists and describes the object-level changes evaluated by the merge.
- Addition: Local or Remote branch adds property or value. Property or value not in Base.
- Deletion: Local or Remote branch removes property or value. Property or value present in Base.
- Modification: Local or Remote branch changes property or value. Property or value present in Base.
- Reorder: Not applicable to single-value properties.
- Rename: Not applicable to single-value properties.
Complete List of Changes and Merge Rules
This table lists and explains Semantic Modeler's merge rules for single-value properties.
| Local Modification | Remote Modification | Rule (Natural Language) | Result |
|---|---|---|---|
| No change | No change | No change made in either branch. No change in merge result. | No action |
| No change | Addition | Remote branch adds new property. Merge results include new property. | Addition kept |
| No change | Modification | Remote branch modifies a property. Merge results include modified property. | Modification kept |
| No change | Deletion | Remote branch deletes a property. Merge results reflect property deletion. | Deletion kept |
| Addition | No change | Local branch adds property. Merge results include new property. | Addition kept |
| Addition | Addition (same value) | Local and Remote branches add a property with the same value. Merge results keep only one instance of the property with value. | Addition kept |
| Addition | Addition (different value) | Local and Remote branches add a property but with different values. Results in merge conflict that user must resolve. | Merge conflict |
| Modification | No change | Local branch modifies a property. Merge results include the modified property. | Modification kept |
| Modification | Modification (same value) | Local and Remote branches make the same change to the same value. Merge results include the modified value. | Modification kept |
| Modification | Modification (different value) | Local and Remote branches make different changes to the same value. Results in merge conflict that user must resolve. | Merge conflict |
| Modification | Deletion | Local branch modifies a property and Remote branch deletes the same property. Results in merge conflict that user must resolve. | Merge conflict |
| Deletion | No change | Local branch deletes a property. Merge results remove the object. | Deletion kept |
| Deletion | Modification | Local branch deletes a property and Remote branch modifies the same property. Results in merge conflict that user must resolve. | Merge conflict |
| Deletion | Deletion (same property) | Local and Remote branches delete the same property. Merge results deletes the object. | Deletion kept |