Last week I spent in Walldorf (Germany) at EGit hackfest. I want to attend on all sessions therefore I’ve decided to go there day before and leave Walldorf day after event. Therefore I had some time that I can spent on short tours in Walldorf and Frankfurt. Here is a short summarization things that we manage to achieve during this time in case of synchronize view in EGit.
With Christian Halstrick we manage to speed up synchronization operation. Our starting point was comparing branch stable-0.7 against stable-0.10 from EGit repository with at the beginning takes around 2 minutes. Then using yourkit profiler we manage to reduce synchronization time down to less then 20 seconds on the same data set! The first set of patches that gives most acceleration were already merged into master and are available in latest nightly build of EGit, but there are also some open change sets in gerrit pending for review that should give some performance boost. Even with this improvements synchronization on some large repositories can take more then 5 minures, therefore this topic is still open for me and I’ll continue to hacking on it in feature. Currently one of the slowest part is mapping path of file/folder from git into eclipse’s workspace resource, but this should be improved by new implementation of IWorkspaceRoot.getFileForLocation()/IWorkspaceRoot.getContainerForLocation() in Eclipse 3.7 ;>
Second task that I manage to start working on during hack sessions is supporting context menu action in synchronization. I didn’t finish it but most of code is currently written. I only need to improve some things and test it. I think that in week or two this change should appear in gerrit.
This was great opportunity for meet persons that I only know from mailing list or code reviews in gerrit, especially to meet Matthias Sohn and Stefan Lay 😉 and also rest of EGit team members ;>
I want to thanks Matthias Sohn for organizing such great event and SAP for hosting it!. Many thanks also for my employer NCDC for refunding me part of my trip.
I don’t think #get{File|Container}forLocation has changed (though findfilesforloc has).
I guess an interesting question might be whether you need to make so many calls? Do you do this for every file in the repository? What about resources which aren’t part of the eclipse workspace? A better bet might be to go from IFiles and IContainers to locations — would this make more sense?
Looking forward for the new IWorkspaceRoot.getFileForLocation()/IWorkspaceRoot.getContainerForLocation() handling.
Pingback: Dariusz Luksza: EGithack fest @ SAP Walldorf