Sequence Diagrams are some kind of special in EnterpriseArchitect.
When adding a message to a Sequence Diagram Enterprise Architect recalculates the other Messages and changes properties like SeqNo, Offsets, ... .
When working parallel on the same Sequence Diagram in different branches, adding/removing messages and merging them with LemonTree may cause unexpected results with positioning of the messages since LemonTree is a compare/merge tool and does not recalculate the diagram as EA does when adding a message to the Sequence diagram.
An example is always good for understanding (especially in this case):
In this example we have a simple Sequence Diagram with only a few connectors. We change the Sequence Diagrams in both branches "A" and "B"
- "A" gets a new message "New in A()" from Lifeline "Object1" to "Object2" after the existing message "Message 0()" from "User" to "Object1"
- "B" gets a new message "New in B()" from Actor "User" to "Object1" at the same position as the change in "A" after the existing message "Message 0()" from "User" to "Object1"
- LemonTree takes both new messages into account and suggests it for the merge preview
- Because EnterpriseArchitect recalculates the position and SeqNo of the other messages (in both branches) LemonTree marks these messages as "Conflicted" (Note: LemonTree compares "A" with "Base" and "B" with "Base" and marks the property as conflicted because it has changed in both branches. LemonTree doesn't compare the properties values from "A" to "B")
- LemonTree DOESN'T recalculate the position / SeqNo of the messages (as you may expect) but takes either A or B into the merge result. This leads to the "MergePreview" where the new messages are on the same level.
When experiencing such a case LemonTree shows a conflict and it's worth taking a look in the written merge file at the conflicted Sequence Diagram. Messages are maybe dislocated and also are no longer in the fragments they belong to.
Note: The diagram may also look different in EnterpriseArchitect than in LemonTree Merge Preview because EnterpriseArchitect draws it different. The new connectors are NOT on the same level.