Kaleidoscope is a really useful diff tool for Mac. It integrates with git difftool by adding this to your ~/.gitconfig:
[difftool "Kaleidoscope"]
cmd = ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\"
prompt = false
How do you make it work with Mercurial / hg?
I found this documentation for Mercurial's Extdiff extension, which references some kdiff3 thing that does not appear to take the same args as ksdiff. When Kaleidoscope opens, it's a really frustrating UI that makes you click down into directories (deal breaker for those Java devs out there ✌️), and it does not have the useful sidebar.
The instruction to use Kaleidoscope with Mercurial / hg can be found in the Kaleidoscope > Integrations window.
Add this to your ~/.hgrc: