D6843: ui: option to preserve the progress bar
joerg.sonnenberger (Joerg Sonnenberger)
phabricator at mercurial-scm.org
Mon Oct 14 18:28:05 EDT 2019
joerg.sonnenberger updated this revision to Diff 17154.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D6843?vs=16520&id=17154
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D6843/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D6843
AFFECTED FILES
mercurial/ui.py
CHANGE DETAILS
diff --git a/mercurial/ui.py b/mercurial/ui.py
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -1008,6 +1008,13 @@
Label names take the form of "topic.type". For example, ui.debug()
issues a label of "ui.debug".
+ Progress reports via stderr are normally cleared before writing as
+ stdout and stderr go to the same terminal. This can be skipped with
+ the optional keyword argument "keepprogressbar". The progress bar
+ will continue to occupy a partial line on stderr in that case.
+ This functionality is intended when Mercurial acts as data source
+ in a pipe.
+
When labeling output for a specific command, a label of
"cmdname.type" is recommended. For example, status issues
a label of "status.modified" for modified files.
@@ -1023,8 +1030,9 @@
self._buffers[-1].extend(args)
return
- # inliend _writenobuf() for speed
- self._progclear()
+ # inlined _writenobuf() for speed
+ if not opts.get(r'keepprogressbar', False):
+ self._progclear()
msg = b''.join(args)
# opencode timeblockedsection because this is a critical path
@@ -1061,7 +1069,8 @@
def _writenobuf(self, dest, *args, **opts):
# update write() as well if you touch this code
- self._progclear()
+ if not opts.get(r'keepprogressbar', False):
+ self._progclear()
msg = b''.join(args)
# opencode timeblockedsection because this is a critical path
To: joerg.sonnenberger, #hg-reviewers, indygreg
Cc: indygreg, durin42, mercurial-devel
More information about the Mercurial-devel
mailing list