| Summary: | ChangeSet doesn't display changed files | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Technology] EGit | Reporter: | Dariusz Luksza <dariusz.luksza> | ||||
| Component: | UI | Assignee: | 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: |
|
||||||
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 :| 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. This change set should fix this issue: http://egit.eclipse.org/r/1512 Fixed with commit: dc0e4265cf8917a467aa8e5b29acc10150e8a8a9 |
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.