EMF Diff/Merge provides a lightweight engine for comparing and merging models using IDs.
Its scope covers:
- 2-way and 3-way comparison of arbitrary EMF models (or "instance models").
- Matching of model elements by ID, where an ID can be any "signature" that uniquely identifies the element within its scope: Ecore ID, XML ID, qualified name, location in model tree, etc.
- A simple GUI with reusable UI components.
Besides, the tool is intended to satisfy the following requirements:
- It must realistically support the comparison and merge of large models. There is thus an emphasis on scalability and reliability.
- The consistency of the model being merged must be preserved by the tool whenever possible, by automatically merging interdependent differences together.
- The order in which differences are merged must have no impact.
The final goal is to obtain a mature, versatile software building block for multiple usages: version control, incremental model transformations, model refactoring, etc.
The EMF Diff/Merge project is part of EMF.