Hello. I have seen a lot of problems around diffing lately. My main workflow is to review all my changes before commiting. So I usually go through the 'Changes' window and click 'show diff' on all my files, make edits as nessecary in that window, then commit.
It happens a lot now that the 'Show Diff' window displays an incorrect file. I can't exactly pinpoint what it is, but it happens a lot. It is making the Mercurial integration bascially useless for me. I've noticed this the most on Merges (possibly with moved files) but I'm not convinced that is the only time I see the problem.
I tried using the 'External Diff Tools', but they do not integrate as well as the embedded diff tools with PHPStorm. For example, when you 'Show Diff' with external tools, it doesn't actually let you edit the diff. I have a feeling that it's how the Diff Tool is opened and that is not configurable with PHPStorm. Also, there seems to be a bug with Merging with External Tools. When manually merging with an External Editor, PHPStorm does not consider the conflict resolved after you close the file.
This experience is pretty broken.
I'm using the latest PHPStorm 7 and I've even tried the EAP and PyCharm. All these editors have the same problem.