I use EMF Compare 2.0 with GMF Compare to get a graphical diff of two models. I used the org.eclipse.compare.contentMergeViewers extension point to create a new instance of ...ide.ui.internal.contentmergeviewer.diagram.DiagramContentMergeViewer and this works quite well - The Notation Model diff is shown via my graphical editor. Now I want to customize the diffengine to ignore transient attributes, (Shouldn't this be the default compare behavior?) but there is no extension point to hook a custom diff engine into the viewer. I know, that it is possible to change the Diffengine programmatically via EMFcompare.builder().setDiffEngine(..), but how is it possible to change the diffengine when executing the diff from the Eclipse UI menu?
You're true there is no way to provide a custom DiffEngine through extension point. What you can do it to provide a post processor (IPostProcessor) and do your stuff in the method #postDiff(Comparison, Monitor). You can browse the Comparison and remove any difference that you want to ignore.
BTW, you are talking about a transient attribute. They are ignored during the diff process (look at org.eclipse.emf.compare.diff.FeatureFilter.isIgnoredAttribute(EAttribute) and org.eclipse.emf.compare.diff.FeatureFilter.isIgnoredReference(Match, EReference)) so it looks like bug. Could you give us more detail about your case? Thank you.