Zwei Modelle werden verglichen, um deren Unterschiede und Gemeinsamkeiten zu erhalten. Dies ist insbesondere bei einer verteilten Modellierung in einem Team ein wichtiger Anwendungsfall. So kann ein Modellierer seine lokale Version eines Modells mit der im Repository befindlichen Version vergleichen, um herauszufinden, ob an dem Modell seit seiner letzten Aktualisierung Änderungen durch andere Teammitglieder vorgenommen wurden. Anschließend kann der Modellierer entscheiden, ob und ggf. welche Änderungen er akzeptiert und in seine Version übernimmt. Dieser Vorgang wird in der Softwareentwicklung als Merge bezeichnet.
In der View Model Repository selektiert der Modellierer zwei Modelle, die er vergleichen möchte und wählt aus dem Kontextmenü Compare/Merge aus.
Die sich öffnende Compare View ist standardmäßig dreigeteilt. Im oberen Bereich befindet sich eine Liste der Unterschiede. Unten links befindet sich das im Modellbaum weiter oben befindliche Modell und unten rechts das sich weiter unten befindende Modell, der beiden selektierten Modelle. Die Lesart der Änderungen ist dabei Änderung vom linken Modell zum rechten Modell. Im Beispiel besagt der erste Eintrag, dass sich der Wert des Attributs Name vom Typ EString in library von library zu flughafen geändert hat. Wird dieser Eintrag in der Änderungsliste markiert, werden die betreffenden Elemente der Modelle in den unteren Bereichen grau unterlegt. Elemente, die nicht mehr enthalten sind, sind mit einem kleinen Minus gekennzeichnet und neu hinzugekommene Elemente mit einem kleinen Plus am Beginn der Zeile. Im den beiden unteren Bereichen sind nicht mehr enthaltene Elemente mit rot und neu hinzugekommene Elemente mit grün umrandet. Durch Aufklappen der Elemente sind deren Kindelemente sichtbar.
Auch der Vergleich von zwei M1 Modellen ist möglich. Allerdings ist die von EMF Compare 0.8.1 bereitgestellte Funktionalität, auf die das Modellrepository bei Compare/Merge zurückgreift, für diesen Anwendungsfall fehlerhaft (siehe auch Bugliste )
Versuche, Modelle mit unterschiedlichen Metamodellen oder Modelle unterschiedlicher Ebenen zu vergleichen, sind semantisch wertlos oder zumindest äußerst schwierig zu interpretieren. Daher wird diese Funktionalität vom Modellrepository nicht bereitgestellt. Der Modellierer wird darauf mit dem folgenden Fehlerdialog aufmerksam gemacht:
Im unteren Bereich der Compare View können die Änderungen beliebig übernommen werden. Soll eine Änderung des linken Modells ins rechte übernommen werden oder umgekehrt, dann sind die Buttons im Rahmen 3 zu benutzen. Soll die Liste der Unterschiede und Gemeinsamkeiten gespeichert werden, erfolgt dies mit emfdiff über den Button in Rahmen 1. Sollen die Änderungen im linken oder rechten Modell gespeichert werden, geschieht dies mit den Menüeinträgen in Rahmen 2. Die Buttons in Rahmen 4 dienen der Navigation durch die Änderungsliste.
Die im Compare View angezeigten Modelle befinden sich zunächst nur im Programmspeicher. Um die Änderungen persistent zu machen, muss das interessierende Modell, wie oben beschrieben, exportiert werden. Damit ist es möglich, die Modelle unter Berücksichtigung der vorgenommenen Änderungen im lokalen Dateisystem abzulegen. Ist es darüber hinaus gewünscht, die Änderungen an den Modellen auch in das Repository zu übertragen, so können die ins lokale Dateisystem exportierten Modelle über die bereitgestellte Speicherfunktionalität im Repository abgelegt werden. Das Vorgehen dazu ist unter Modell speichern beschrieben.