|EMFCompare filtering files out of model resolving phase [message #1802351]
||Thu, 07 February 2019 09:15
| Luis Mata
Registered: October 2017
In our application, we are using EMFCompare with EGit to provide an environment with typical git collaboration with EMF models, allowing the users to commit, push, merge, etc..
Our issue is that some users have a relatively big model structure, and their merging process takes too much time (20min to 1h in some cases)
Just for the sake of clarity, we are talking about 200 model files with total ~50MB - I don't believe size is the main issue.
According to EMFCompare documentation, the largest chunk of time spent in the merging process is on the Model resolving phase.
Knowing this, I did some investigation and found out that the issue might be that, when resolving the model, the framework is looking into all the resources(files) present in the git repository to verify if they belong to the model structure.
The repository does not only contain the model files, but also other resources that don't belong to the model (to 2000+ files/ ~300MB total size).
When we make a call to build the logical models, I was able to supply a filtered version of the subscriber, with only the model files in it (they are all located in the same folder). But looking into the process it seems that the ResourceDependencyLocalResolver is going to get all the changes in the entire repository anyway, making the previous filtering useless.
I would like to ask some questions and maybe someone can give me suggestions on how I can improve the performance.
1- Am I correct in assuming that the heavy performance hit in the model resolution phase is due the fact the framework is looking into all the files present in the repository to validate if they are part of the model?
2- If so, is there any recommended way of constraining the resolver into only working in a folder (with all the model files in), instead of the full repository?
I am aware that my knowledge is still limited so I might have overlooked something.
Any help and suggestions in fixing this issue will be much appreciated.
Powered by FUDForum
. Page generated in 0.02039 seconds