"tool diffmerge requires a GUI" when trying to hg merge in Cygwin

268 Views Asked by At

I'm trying to run hg merge on Cygwin, which I've setup to launch DiffMerge on conflicts. Despite this, I get dropped into vimdiff when I merge.

$ hg merge
tool diffmerge requires a GUI
...

This error message was introduced in commit 090b1a665901, and defines a GUI-enabled device as a nt (Windows) or mac (OSX) machine, or one with the DISPLAY variable set. In my Cygwin install, DISPLAY is not set, and os.name is posix.

$ [ -z "$DISPLAY" ] && echo NOT SET
NOT SET
$ python -c 'import os; print(os.name)'
posix

If I set DISPLAY to an arbitrary string, hg merge successfully launches DiffMerge:

$ DISPLAY=abc hg merge
merging path/to/file
(no more unresolved files)

What am I missing? Is Python incorrectly reporting I'm running on posix? Should Cygwin be setting DISPLAY?

I'm using Cygwin 2.0.4 on Windows 7, Mercurial version 3.3, DiffMerge 4.2.0.

0

There are 0 best solutions below