EMF Diff/Merge is a diff/merge tool for models. Its main purpose is to help build higher-level tools that need to merge models based on consistency rules. GUI components and higher-level tools, such as support for modeling patterns, model patches and model synchronization, are also provided. Typical usages include model refactoring, iterative model transformations, bridges between models or modeling tools, collaborative modeling environments, or versioning systems.
The main improvements in this release are:
At engine level
The ability to strongly separate compare time and merge time.
A few bug fixes, especially for 3-way comparisons.
At UI level
The unification of viewers for symmetrical and directed comparisons.
A mechanism for custom diff-based decorations.
A slight revamp of the GUI based on this mechanism.
Fine-grained comparison and merge of textual attributes.
The project leadership certifies that the APIs in this release are "Eclipse Quality".
EMF Diff/Merge has been designed with extensibility and integrability in mind. Consequently, it has been integrated into various modeling environments for very different usages: classical versioning, model reuse, model synchronization.
Among the applications mentioned, one refers to the wiki page dedicated to Modeling Patterns, another one to the wiki page dedicated to Co-Evolution, and a last one to the wiki page dedicated to Model Patches. These pages are structured similarly to the main page.
EMF Diff/Merge obtained the "Most innovative project/feature" award at EclipseCon NA 2013. The forum, bugzilla and Gerrit show activity by different people and organizations. Gerrit pull requests have been submitted by people external to the project. EMF Diff/Merge is known to be distributed within modeling tools such as Polarsys Capella or Intel Cofluent Studio. Presentations have been regularly made at EclipseCon.