| Summary: | Synchronize View does not use correct common ancestor | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Technology] EGit | Reporter: | Stefan Lay <stefan.lay> | ||||||
| Component: | Core | Assignee: | Chris Aniszczyk <caniszczyk> | ||||||
| Status: | RESOLVED FIXED | QA Contact: | |||||||
| Severity: | normal | ||||||||
| Priority: | P3 | CC: | caniszczyk, dariusz.luksza, matthias.sohn | ||||||
| Version: | unspecified | ||||||||
| Target Milestone: | 0.9.0-M2 | ||||||||
| Hardware: | PC | ||||||||
| OS: | All | ||||||||
| Whiteboard: | |||||||||
| Attachments: |
|
||||||||
|
Description
Stefan Lay
Created attachment 172726 [details]
Three way compare in synchronize view
The creation of the attachment had failed during bug creation.
I'm currently working on this issue.My idea was to implement whole structure of IProject, IFile, IContainer, IFolder and IResource so that this implementation can read data from Git and return this when team framework calls roots() method on GitResourceVariantTreeSubscriber. But Stefan's approach seams to be easier, therefore I'll switch and try to implement this as it is suggested. I think that I've manage to fix this issue. As Stefan suggested I used RevWalk with RevFilter.MERGE_BASE. Additionally I've added Git implementations for eclipse's resource interfaces (IResource, IContainer, IFile and so on) to be able return IResource[] in GitResourceVariantTree.members(). I think that this change will be ready to publish in two or three days. This code really need to be refactored ;), also tests need to be written. Created attachment 172865 [details]
Presentation of fixed three-way compare view
I hit a race condition some how ... when synchronization stops on break points for debuging result is returned properly, but when I remove break points synchronization says "no changes found"; in some cases . This is quite huge problem because synchronization process is quite complicated :| I've manage to fix this issue (actually this was my mistake because remote resource variants had a reference to local resource content instead of content obtained from git). My patch set desperately need some cleaning and refactoring (before I'll publish it). I'll continue working on it and push it as fast as I can. I've already pushed patch for this issue for code review: http://egit.eclipse.org/r/#change,1064 I created a CQ for this change... https://dev.eclipse.org/ipzilla/show_bug.cgi?id=4390 Dariusz could you make the necessary confirmations for the IP review as a comment to this bug: a. authored 100% b. has the rights to donate the content to Eclipse c. contributes the content under the EPL (In reply to comment #9) > a. authored 100% Yes, this code is 100% authored by me > b. has the rights to donate the content to Eclipse Yes, I have full right to donate this code to Eclipse > c. contributes the content under the EPL Yes, it is contributed under EPL Fixed with. 986e3823e1e3555bda426b3b09bd790d4595113a. Thanks Dariusz! |