Correct sync info calculation for folders
commitc26fa04c9b6d74dc22e1fea422f00f4e6ba7941b
authorThomas Wolf <thomas.wolf@paranor.ch>
Thu, 22 Jun 2017 21:04:34 +0000 (22 23:04 +0200)
committerThomas Wolf <thomas.wolf@paranor.ch>
Fri, 23 Jun 2017 07:58:13 +0000 (23 09:58 +0200)
tree5c3b520c4a7d52cc93bd4de606670a6222e7ce6d
parent9259942da008a4e754da97c986df4b1084a13601
Correct sync info calculation for folders

The folder handling in the git "Team synchonization" support was wrong
since commit f46237a (bug 516426). That commit considered folders as
supervised -- which is correct since otherwise some changes may be
missed. It also tried to compensate for folders without changes showing
up in the synchronize view by setting their sync state to IN_SYNC if
they had only IN_SYNC descendants.

That broke the display of "compacted folders" in the synchronize view.
If a file is not IN_SYNC, the synchronize view is able to handle its
parent containers fine without needing any SyncInfo for them. When we
do supply sync info, the parent containers will be considered changed
themselves, and will show up explicitly in the synchronize view.

Therefore, simply return IN_SYNC for folders. The state recorded in the
GitSyncObjCache is bogus anyway.

Bug: 518646
Change-Id: I2970a50b2d11403b84dc1b9a000021f61ca92f90
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
org.eclipse.egit.core.test/src/org/eclipse/egit/core/synchronize/GitSubscriberResourceMappingContextTest.java
org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/GitSyncInfo.java