changeset 28171:2d20d1d2ea76

progress: display progress bar when HGPLAINEXCEPT contains "progress" This patch changes "progress.shouldprint()" so a feature name is provided to "ui.plain()" to determine if there is an exception specificed in HGPLAINEXCEPT for the progress extension. This will allow user-facing scripts to provide progress output while HGPLAIN is enabled.
author Matt Anderson <andersonmat@fb.com>
date Wed, 17 Feb 2016 15:18:30 -0800
parents bc010fcd836b
children f2004e4908f3
files mercurial/help/environment.txt mercurial/progress.py tests/test-progress.t
diffstat 3 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/help/environment.txt	Wed Feb 17 19:38:44 2016 +0000
+++ b/mercurial/help/environment.txt	Wed Feb 17 15:18:30 2016 -0800
@@ -69,6 +69,8 @@
         Preserve internationalization.
     ``revsetalias``
         Don't remove revset aliases.
+    ``progress``
+        Don't hide progress output.
 
     Setting HGPLAINEXCEPT to anything (even an empty string) will
     enable plain mode.
--- a/mercurial/progress.py	Wed Feb 17 19:38:44 2016 +0000
+++ b/mercurial/progress.py	Wed Feb 17 15:18:30 2016 -0800
@@ -18,7 +18,7 @@
     return ' '.join(s for s in args if s)
 
 def shouldprint(ui):
-    return not (ui.quiet or ui.plain()) and (
+    return not (ui.quiet or ui.plain('progress')) and (
         ui._isatty(sys.stderr) or ui.configbool('progress', 'assume-tty'))
 
 def fmtremaining(seconds):
--- a/tests/test-progress.t	Wed Feb 17 19:38:44 2016 +0000
+++ b/tests/test-progress.t	Wed Feb 17 15:18:30 2016 -0800
@@ -79,6 +79,12 @@
 no progress with --quiet
   $ hg -y loop 3 --quiet
 
+test plain mode exception
+  $ HGPLAINEXCEPT=progress hg -y loop 1
+  \r (no-eol) (esc)
+  loop [                                                ] 0/1\r (no-eol) (esc)
+                                                              \r (no-eol) (esc)
+
 test nested short-lived topics (which shouldn't display with nestdelay):
 
   $ hg -y loop 3 --nested