I got a question about the what is seen as an updatereference in emfCompare. I am comparing two different models and among other results, I am having some references indicated as a change but these have not been touched from one model to other.

In this way it was possible to reduce the number of updatereference to 26 and using the ECoreutil.equals method this number decreased to 7, 3 of these references are obviously different but the other 4 seem to be the same from the point of view of the attributes. The question is, what EMFCompare use to make the comparision between to references to indicate a change?, and how it is possible see this values in order to understand which ones among them are generating this output.

As has been told before, "equals" cannot be used on EObjects to determine equality or inequality, especially between two models that are considered to contain differences. An EObject which name is "Magazine" might very well be the same as an EObject named "Book" but with a super-type "Periodical" added to it. This is only false when the EObjects have identifiers, in which case they can be used to determine mappings.

EMF Compare 1 "equality" between EObjects is determined through a number of metrics, and you'll have to look at them in order to determine what to change (see also the FAQ answer). You'll have to override the GenericDiffEngine's 'ReferenceCheck' if your method of computing differences is to be different (or if some features have to be ignored).