[PATCH stable v2] progress: disable progress when the terminal resembles cmd.exe (issue4801)

Matt Mackall mpm at selenic.com
Tue Mar 1 18:41:42 EST 2016


On Tue, 2016-03-01 at 13:23 -0800, Augie Fackler wrote:
> > On Mar 1, 2016, at 13:19, Simon King <simon at simonking.org.uk> wrote:
> > 
> > > On 1 Mar 2016, at 19:42, Augie Fackler <raf at durin42.com> wrote:
> > > 
> > > # HG changeset patch
> > > # User Augie Fackler <augie at google.com>
> > > # Date 1456860899 18000
> > > #      Tue Mar 01 14:34:59 2016 -0500
> > > # Branch stable
> > > # Node ID 301d88f9aeeae128fa8a4e15303f4ac64c7afc69
> > > # Parent  5f95d6a70e9b37bf11487580a5c750d861baa8f5
> > > # EXP-Topic progress-cmd
> > > progress: disable progress when the terminal resembles cmd.exe (issue4801)
> > > 
> > > It appears that cmd.exe is hopelessly unreliable when it comes to
> > > handling carriage returns, based on my own web searching. The blessed
> > > mechanism for performing cursor positioning appears to be
> > > SetConsoleCursorPosition(), but I don't have easy access to a Windows
> > > machine, and we need a simple fix for stable anyway.
> > > 
> > > Ideally, someone on Windows can write a fix for this and contribute it.
> > > 
> > > diff --git a/mercurial/progress.py b/mercurial/progress.py
> > > --- a/mercurial/progress.py
> > > +++ b/mercurial/progress.py
> > > @@ -7,6 +7,7 @@
> > > 
> > > from __future__ import absolute_import
> > > 
> > > +import os
> > > import sys
> > > import threading
> > > import time
> > > @@ -18,8 +19,17 @@ def spacejoin(*args):
> > >    return ' '.join(s for s in args if s)
> > > 
> > > def shouldprint(ui):
> > > -    return not (ui.quiet or ui.plain()) and (
> > > -        ui._isatty(sys.stderr) or ui.configbool('progress', 'assume-
> > > tty'))
> > > +    if ui.configbool('progress', 'assume-tty'):
> > > +        return True
> > 
> > At the moment, either ui.quiet or ui.plain() are enough to disable progress.
> > With this change, progress.assume-tty would override them. Was that
> > intentional?
> 
> Partially. The principle use of assume-tty is for testing progress, so I'm not
> super worried about changing the semantics of that.
> 
> Matt, do you feel strongly about that? (Other concerns about this patch
> aside.)

Timeless and I made a fair amount of progress tracking this down today but timed
out. I think I'm going to leave this issue for the next release.

-- 
Mathematics is the supreme nostalgia of our time.



More information about the Mercurial-devel mailing list