Patch Set 4: I would prefer that you didn't submit this

(6 inline comments)

The test cases fail due to unclosed streams, see comments.

There is a general problem if you synchronize from a source which is not the checked-out branch. I tried it and got conflicts where no conflict should be because the coding always uses the workspace version of the resource as source version.

In my opinion we should always use the local workspace version as source version. This is also what the eclipse synchronize framework assumes. So you could simplify the SelectSynchronizeResourceDialog and just offer a destination selection.

I think we should not use the HEAD, but the workspace version as source. If the resources are dirty or staged we should just mark that by displaying a label decoration in the synchronize view.