Diff & Merge

3-way diffing and merging of Enterprise Architect models

The most important function of LemonTree is the diffing and merging of different model versions. Standard approaches use line- and text-based applications that do not suffice for graphic models. Only the fine-grained 3-way diffing algorithm that considers the model’s graph structure allows an exact comparison between two models. This 3-way comparison for models that includes the basis version has now been realized in LemonTree. It enables calculation of changes in the current model versions; for each version it is calculated which property of a model element has changed. These changes are presented to the user in an intuitive, easy-to-understand fashion.

Parallel development of model branches

Longer-term, parallel development of versions and variants

LemonTree opens the door to new modeling processes in the day-to-day work of software configuration management. An important part of this is the possibility to develop in a separate branch long-term, parallel versions and variants of software. This is now possible with LemonTree for Enterprise Architect models. The optional integration with a versioning system applies the benefits of that system’s functionality to your Enterprise Architect models.

Model versioning

Parallel editing of models through optimistic model versioning

Optimistic versioning techniques (line-based) that have become prevalent in the versioning of source code cannot be used for graph-based models. While pessimistic versioning blocks all the artefacts for the user who wants to make changes, the optimistic version allows all users to work in parallel on the same artifact. This leads to the challenges that, on the one hand, one must compare parallel model versions, while on the other hand resolving conflicts with overlapping changes before reassembling these changes into one version. This assembly is now possible on the model level (UML) with LemonTree. The view of the changes at the model level gives a better understanding of the conflicts to be solved, which can be handled in a targeted manner. The consolidated version is then available to all stakeholders as a new starting point for further development.

Merge Preview

Diagram merge and merge preview

Performance, ensuring model validity and the user-friendly display of diagram changes are important components of a modern model versioning system and have been implemented in LemonTree. LemonTree gives you a preview what the merged versions will look like. This helps the user to see the results prior to actual execution, helping to guarantee only the truly desired results. Conflicts between two model versions must be resolved when merged. Automating this process can be achieved through various strategies, but a manual procedure often cannot be avoided. Changes to graphic models usually take place on the diagram level, and therefore must be shown there as well.


Seamless integration with Subversion, Git, PTC or other VCS possible

LemonTree can be seamlessly integrated into existing versioning systems. Our customers have successfully implemented LemonTree with SVN, Git or PTC. We automatically supply the integration with TortoiseSVN and Git. This enables the central, automatic management of model versions. It also enables parallel editing of models in a team, as has for years been a common approach when editing source code. LemonTree for Enterprise Architect is referred to as an external Diff & Merge Tool as soon as a model is checked into the central repository.


Changes are visualized clearly and understandably for review (including preview)

LemonTree makes it easy to check and release all changes. The changes made are marked accordingly in order to make them traceable at any time. This clear traceability of changes is required precisely in safety-critical (functional safety) development. With LemonTree, users ensure that they meet all requirements…even in critical audits.