diff -r 2c02bb7fd7fc -r c5d924e5dfdb mercurial/ui.py --- a/mercurial/ui.py Wed Mar 22 16:36:53 2017 -0700 +++ b/mercurial/ui.py Mon Mar 20 00:19:33 2017 -0400 @@ -846,6 +846,15 @@ if not pagercmd: return + if pycompat.osname == 'nt': + # `more` cannot be invoked with shell=False, but `more.com` can. + # Hide this implementation detail from the user, so we can also get + # sane bad PAGER behavior. If args are also given, the space in the + # command line forces shell=True, so that case doesn't need to be + # handled here. + if pagercmd == 'more': + pagercmd = 'more.com' + self.debug('starting pager for command %r\n' % command) self.flush() self.pageractive = True