##// END OF EJS Templates
ui: restore behavior to ignore some I/O errors (issue5658)...
ui: restore behavior to ignore some I/O errors (issue5658) e9646ff34d55 and 1bfb9a63b98e refactored ui methods to no longer silently swallow some IOError instances. This is arguably the correct thing to do. However, it had the unfortunate side-effect of causing StdioError to bubble up to sensitive code like transaction aborts, leading to an uncaught exceptions and failures to e.g. roll back a transaction. This could occur when a remote HTTP or SSH client connection dropped. The new behavior is resulting in semi-frequent "abandonded transaction" errors on multiple high-volume repositories at Mozilla. This commit effectively reverts e9646ff34d55 and 1bfb9a63b98e to restore the old behavior. I agree with the principle that I/O errors shouldn't be ignored. That makes this change... unfortunate. However, our hands are tied for what to do on stable. I think the proper solution is for the ui's behavior to be configurable (possibly via a context manager). During critical sections like transaction rollback and abort, it should be possible to suppress errors. But this feature would not be appropriate on stable.

File last commit:

r32608:85b97803 stable
r33859:cde4cfeb stable
Show More
pager.txt
43 lines | 1.4 KiB | text/plain | TextLexer
Matt Harbison
help: attempt to clarify that pager usage is not output length based...
r32138 Some Mercurial commands can produce a lot of output, and Mercurial will
Augie Fackler
pager: move most help to a new help topic and deprecate extension
r31061 attempt to use a pager to make those commands more pleasant.
To set the pager that should be used, set the application variable::
[pager]
pager = less -FRX
Xavier Lepaul
help: clarify the choice of pager...
r32608 If no pager is set in the user or repository configuration, Mercurial uses the
environment variable $PAGER. If $PAGER is not set, pager.pager from the default
or system configuration is used. If none of these are set, a default pager will
be used, typically `less` on Unix and `more` on Windows.
Augie Fackler
pager: move most help to a new help topic and deprecate extension
r31061
Matt Harbison
help: document color/pager pitfalls on Windows...
r32137 .. container:: windows
On Windows, `more` is not color aware, so using it effectively disables color.
MSYS and Cygwin shells provide `less` as a pager, which can be configured to
support ANSI color codes. See :hg:`help config.color.pagermode` to configure
the color mode when invoking a pager.
Augie Fackler
pager: move most help to a new help topic and deprecate extension
r31061 You can disable the pager for certain commands by adding them to the
pager.ignore list::
[pager]
ignore = version, help, update
To ignore global commands like :hg:`version` or :hg:`help`, you have
to specify them in your user configuration file.
To control whether the pager is used at all for an individual command,
FUJIWARA Katsunori
help: apply bulk fixes for indentation and literal blocking issues...
r32085 you can use --pager=<value>:
Augie Fackler
pager: move most help to a new help topic and deprecate extension
r31061
- use as needed: `auto`.
- require the pager: `yes` or `on`.
- suppress the pager: `no` or `off` (any unrecognized value
FUJIWARA Katsunori
help: apply bulk fixes for indentation and literal blocking issues...
r32085 will also work).
Augie Fackler
pager: add a config knob to just globally turn off the pager
r31062
To globally turn off all attempts to use a pager, set::
Pierre-Yves David
pager: rename 'pager.enable' to 'ui.paginate'...
r32105 [ui]
paginate = never
Augie Fackler
pager: add a config knob to just globally turn off the pager
r31062
which will prevent the pager from running.