diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -1214,7 +1214,7 @@ "Feature %s does not handle all default interfaces" % feature) - if self.plain(): + if self.plain() or encoding.environ.get('TERM') == 'dumb': return "text" # Default interface for all the features diff --git a/tests/test-commit-interactive-curses.t b/tests/test-commit-interactive-curses.t --- a/tests/test-commit-interactive-curses.t +++ b/tests/test-commit-interactive-curses.t @@ -368,6 +368,16 @@ $ chunkselectorinterface curses +If TERM=dumb, we use text, even if the config says curses + $ chunkselectorinterface + curses + $ TERM=dumb chunkselectorinterface + text +(Something is keeping TERM=dumb in the environment unless I do this, it's not +scoped to just that previous command like in many shells) + $ TERM=xterm chunkselectorinterface + curses + It is possible to override the default interface with a feature specific interface $ cp $HGRCPATH.pretest $HGRCPATH