Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 324044 - ChangeSet doesn't display changed files
Summary: ChangeSet doesn't display changed files
Status: CLOSED FIXED
Alias: None
Product: EGit
Classification: Technology
Component: UI (show other bugs)
Version: 0.9.0   Edit
Hardware: PC Linux
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: Dariusz Luksza CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-30 19:09 EDT by Dariusz Luksza CLA
Modified: 2010-09-18 15:53 EDT (History)
1 user (show)

See Also:


Attachments
screen shot showing described two synchronization result (84.38 KB, image/jpeg)
2010-08-30 19:09 EDT, Dariusz Luksza CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
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