What is EMF Compare?

EMF Compare provides comparison and merge facility for any kind of EMF Model.

In a nutshell this project provides:

It includes a generic comparison engine and the ability to export differences in a model patch. It is integrated with the Eclipse Team API meaning that it enables collaborative work on models using CVS, SVN and GIT.

Extensible and customizable

EMF Compare provides powerful extensibility mechanisms in order to compare and merge any kind of EMF model.

Depending on your own comparison strategy, EMF Compare allows you to fully customize the matching method (to find equivalences) and the differencing process (to identify gaps between two versions of the same object).

The comparison UI can also be customized to show differences exactly as you need (labels, filters, groups, etc).

Scaling to millions

EMF Compare has been designed with scalability in mind in order to support comparisons of large fragmented models.

It only loads the fragments susceptible to have changed and then compares only these parts. Only the necessary fragments (minimized scope) of the compared models are loaded, bringing fast differences computing along with an optimal memory footprint.

This way, EMFCompare is able to compare models with millions of elements in a number of steps proportional to the number of differences.

Integration with Eclipse Team APIs

EMF Compare relies on Eclipse Team, the framework upon which the repository providers (EGit, CVS, Subversive...) are built. It means that you can directly compare models managed in such repositories.

Moreover, if these models are fragmented, EMF Compare provides a global view on the changes, at the model level and not file by file.

It helps you to avoid the tedious task of comparing and merging textual differences in individual files. It also ensures that the merge will keep the integrity of the model.