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

(1 inline comment)

> isn't direction something the user decides on? This one can only tell that user added, delete or changed something relative to the merge base in non, one or both branches.

> Yes, user can 'decides' on 'direction', changes that was marked as incoming when comparing 'origin/master' vs 'current branch' should be marked as outgoing wile synchronizing 'current branch vs 'origin/master'. The same is with outgoing changes when source and destination branch will be shwitched.

I doubt that. In my opinion the synchronize API is made to compare the local state with any other state (see bug 322489). So everything that is there locally but not on the other state is an outgoing change, everything which is there on the other state but not locally is incoming. The other state is a remote server at CVS but can be any other commit at git (normally a branch or a tag).

So in git each commit I can reach from my HEAD but not from the other commit is outgoing, each commit I can reach from the other commit but not from my HEAD is incoming.