extdiff: don't run gui programs when in a cli-only environment
When some machine is both available as a desktop interface and as SSH, you might have some local config that uses a GUI diff/merge tool. If mercurial tries to invoke it in an SSH session, it can result in weird errors or session freezes. The same problem can happen if reusing the same config across machines that could incorrectly bring GUI tools into a SSH-only server. Anyway, this change displays an error message instead of trying to spawn a GUI tool in a terminal-only session.
This can be bypassed by specifying --config mergetool.foo.gui=False
in the invocation.
Edited by Anton Shestakov