Merging models is a common need in model-based activities; its relevance is far from being limited to version control. However, merging models is much more complex than merging source code. EMF Diff/Merge provides a lightweight engine for comparing and merging models using IDs.
Its scope includes, among others:
- 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.
The tool is intended to satisfy the following requirements:
- It must support the comparison and merge of large models (scalability, 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.
- Via the update site: https://hudson.eclipse.org/hudson/job/buckminster-emf-diffmerge-master/lastSuccessfulBuild/artifact/result/publish/org.eclipse.emf.diffmerge.sdk.feature/site.p2/
- Or as dropins