[Updated] D11627: dispatch: ignore failure to flush ui
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Tue Oct 12 17:20:45 UTC 2021
Closed by commit rHG2f2107c01dee: dispatch: ignore failure to flush ui (authored by martinvonz).
This revision was automatically updated to reflect the committed changes.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D11627?vs=30708&id=30746
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D11627/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D11627
AFFECTED FILES
mercurial/dispatch.py
tests/test-pager.t
CHANGE DETAILS
diff --git a/tests/test-pager.t b/tests/test-pager.t
--- a/tests/test-pager.t
+++ b/tests/test-pager.t
@@ -219,8 +219,7 @@
#endif
A complicated pager command gets worse behavior. Bonus points if you can
-improve this. Windows apparently does this better, but only sometimes?
-#if windows
+improve this.
$ hg log --limit 3 \
> --config pager.pager='this-command-better-never-exist --seriously' \
> 2>/dev/null || true
@@ -240,11 +239,6 @@
date: Thu Jan 01 00:00:00 1970 +0000 (?)
summary: modify a 8 (?)
(?)
-#else
- $ hg log --limit 3 \
- > --config pager.pager='this-command-better-never-exist --seriously' \
- > 2>/dev/null || true
-#endif
Pager works with shell aliases.
diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
--- a/mercurial/dispatch.py
+++ b/mercurial/dispatch.py
@@ -252,9 +252,14 @@
err = e
status = -1
- ret = _flushstdio(req.ui, err)
- if ret and not status:
- status = ret
+ # Somehow we have to catcht he exception here; catching it inside
+ # _flushstdio() doesn't work.
+ try:
+ ret = _flushstdio(req.ui, err)
+ if ret and not status:
+ status = ret
+ except BaseException:
+ pass
return status
@@ -314,7 +319,10 @@
ret = -1
finally:
duration = util.timer() - starttime
- req.ui.flush() # record blocked times
+ try:
+ req.ui.flush() # record blocked times
+ except BaseException:
+ pass
if req.ui.logblockedtimes:
req.ui._blockedtimes[b'command_duration'] = duration * 1000
req.ui.log(
@@ -338,7 +346,10 @@
except: # exiting, so no re-raises
ret = ret or -1
# do flush again since ui.log() and exit handlers may write to ui
- req.ui.flush()
+ try:
+ req.ui.flush()
+ except BaseException:
+ pass
return ret
@@ -459,7 +470,10 @@
try:
return _dispatch(req)
finally:
- ui.flush()
+ try:
+ ui.flush() # record blocked times
+ except BaseException:
+ pass
except: # re-raises
# enter the debugger when we hit an exception
if req.earlyoptions[b'debugger']:
To: martinvonz, #hg-reviewers, pulkit
Cc: mercurial-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-patches/attachments/20211012/35f4f655/attachment-0002.html>
More information about the Mercurial-patches
mailing list