Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 324044

Summary: ChangeSet doesn't display changed files
Product: [Technology] EGit Reporter: Dariusz Luksza <dariusz.luksza>
Component: UIAssignee: Dariusz Luksza <dariusz.luksza>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P3 CC: remy.suen
Version: 0.9.0   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
screen shot showing described two synchronization result none

Description Dariusz Luksza CLA 2010-08-30 19:09:21 EDT
Created attachment 177797 [details]
screen shot showing described two synchronization result

Scenario:

0. Clone EGit project
1. Create new branch (eg. change-set-test) and checkout it
2. use CGit to reset branch to be before HEAD (eg. git reset --hard HEAD~5)
3. run synchronization for HEAD vs. origin/master, you should see 5 changed commits with included changed files
4. checkout master branch
5. run synchronization for change-set-test vs. origin master - the result that can be seen isn't identical with previous synchronization result. There are some folders that doesn't contains any changed files, but in previous synchronization they have had listed hanged file.
Comment 1 Dariusz Luksza CLA 2010-08-30 19:31:30 EDT
From my current investigations appears that when branch that is used as a source branch is different from current HEAD some of diffs of synchronized files aren't added into diff list. Therefore method isVisible(ISynchronizationContext, Object) from SynchronizationContentProvide return false. Actually in line 563 of SynchronizationContentProvide we get an empty array from:
context.getDiffTree().getDiffs(traversals);

This is a strange situation :|
Comment 2 Dariusz Luksza CLA 2010-08-31 18:16:23 EDT
This bug exists because model synchronization we reuse  GitResourceVariantTreeSubscriber (with uses GitResourceVariantComparator) in GitSubscriberResourceMappingContext.

When synchronization collects data about resource variants it calls GitResourceVariantComparator.comapre(IResource, IResourceVariant) therefore in given scenario we don't see all changed files.
Comment 3 Dariusz Luksza CLA 2010-09-02 18:33:23 EDT
This change set should fix this issue:
http://egit.eclipse.org/r/1512
Comment 4 Dariusz Luksza CLA 2010-09-18 15:53:45 EDT
Fixed with commit: dc0e4265cf8917a467aa8e5b29acc10150e8a8a9