Here are two different questions but I think they are related.
When using Git, how do I find which changes I have committed locally, but haven\'t yet pushed
I would do
$ git fetch --dry-run
for hg incoming and
hg incoming
$ git push --dry-run
for hg outgoing.
hg outgoing