Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[mdt-papyrus.dev] Cross-reference index in di-files?

Hi,

in the context of diff/merge with EMF Compare and EGit, I'm currently analyzing the potential usage of the new cross-reference index [1] for resolving the "logical model" that may span across many file resources.

So far things are looking good in my prototype for the workspace side. This new API is very well done and easy to integrate! However, the real challenge for me will obviously be the indexing on the remote/origin side in the repository storages. Thus, my next step will be to check whether I can extend the OnDemandCrossReferenceIndex so it'll be able to resolve the cross-references on other branches of the repository (i.e., not the workspace, but not-checked out branches).

Before I continue with that however, I wanted to get your opinion on another option. What do you think about storing the cross-reference index in the di-files? Instead of storing the index in the workspace .metadata (as it is now, I suppose), we could store them on-save in the respective di-files.

This would make it faster when someone opens a model the first time in his/her workspace, as the index could be initialized from the di-files, and it would make it very easy to determine the logical model on remote/origin sides in the context of diff/merge with repository providers, such as EGit. Instead of building up an index on the not-checked-out branches, we could just obtain the di-files and read the cross-reference index from there.

Please let me know what you think and whether this could be an option. Because if yes, it might then be unnecessary to work on an extended CrossReferenceIndex implementation for not-checked-out branches.

Thanks a lot for your opinions and best wishes,

Philip


[1] https://wiki.eclipse.org/Papyrus/Neon.1_Work_Description/Improvements/Control-Mode#Model_Cross-Reference_Index

--
Philip Langer

Senior Software Architect / General Manager
EclipseSource Services GmbH

Back to the top