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.
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.
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.
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.
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.
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.