Diffing with vim, taken from http://hgbook.red-bean.com/hgbookch14.html. You need The DirDiff plugin for vim.
[extensions] hgext.extdiff = [extdiff] cmd.vimdiff = vim opts.vimdiff = -f '+next' '+execute "DirDiff" argv(0) argv(1)'
Merging can go very wrong. You should NEVER try to merge without examine the incomming, yours and the original file manually. To use kdiff3 to merge, add this to your .hgrc:
[extensions] hgext.extdiff = [extdiff] cmd.kdiff3 = [merge-tools] kdiff3.args = $base $local $other -o $output
Other merge programs are listed in the mercurial book.