mercurial/help/pager.txt
author Yuya Nishihara <yuya@tcha.org>
Thu, 23 Nov 2017 22:17:03 +0900
branchstable
changeset 35170 c9740b69b9b7
parent 32608 85b978031a75
permissions -rw-r--r--
dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options If this feature is enabled, early options are parsed using the global options table. As the parser stops processing options when non/unknown option is encountered, it won't mistakenly take an option value as a new early option. Still "--" can be injected to terminate the parsing (e.g. "hg -R -- log"), I think it's unlikely to lead to an RCE. To minimize a risk of this change, new fancyopts.earlygetopt() path is enabled only when +strictflags is set. Also the strict parser doesn't support '--repo', a short for '--repository' yet. This limitation will be removed later. As this feature is backward incompatible, I decided to add a new opt-in mechanism to HGPLAIN. I'm not pretty sure if this is the right choice, but I'm thinking of adding +feature/-feature syntax to HGPLAIN. Alternatively, we could add a new environment variable. Any bikeshedding is welcome. Note that HGPLAIN=+strictflags doesn't work correctly in chg session since command arguments are pre-processed in C. This wouldn't be easily fixed.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
32138
edbbd18a47ab help: attempt to clarify that pager usage is not output length based
Matt Harbison <matt_harbison@yahoo.com>
parents: 32137
diff changeset
     1
Some Mercurial commands can produce a lot of output, and Mercurial will
31061
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
     2
attempt to use a pager to make those commands more pleasant.
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
     3
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
     4
To set the pager that should be used, set the application variable::
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
     5
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
     6
  [pager]
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
     7
  pager = less -FRX
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
     8
32608
85b978031a75 help: clarify the choice of pager
Xavier Lepaul <xalep@google.com>
parents: 32138
diff changeset
     9
If no pager is set in the user or repository configuration, Mercurial uses the
85b978031a75 help: clarify the choice of pager
Xavier Lepaul <xalep@google.com>
parents: 32138
diff changeset
    10
environment variable $PAGER. If $PAGER is not set, pager.pager from the default
85b978031a75 help: clarify the choice of pager
Xavier Lepaul <xalep@google.com>
parents: 32138
diff changeset
    11
or system configuration is used. If none of these are set, a default pager will
85b978031a75 help: clarify the choice of pager
Xavier Lepaul <xalep@google.com>
parents: 32138
diff changeset
    12
be used, typically `less` on Unix and `more` on Windows.
31061
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    13
32137
c4eb23116a09 help: document color/pager pitfalls on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 32104
diff changeset
    14
.. container:: windows
c4eb23116a09 help: document color/pager pitfalls on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 32104
diff changeset
    15
c4eb23116a09 help: document color/pager pitfalls on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 32104
diff changeset
    16
  On Windows, `more` is not color aware, so using it effectively disables color.
c4eb23116a09 help: document color/pager pitfalls on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 32104
diff changeset
    17
  MSYS and Cygwin shells provide `less` as a pager, which can be configured to
c4eb23116a09 help: document color/pager pitfalls on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 32104
diff changeset
    18
  support ANSI color codes.  See :hg:`help config.color.pagermode` to configure
c4eb23116a09 help: document color/pager pitfalls on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 32104
diff changeset
    19
  the color mode when invoking a pager.
c4eb23116a09 help: document color/pager pitfalls on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 32104
diff changeset
    20
31061
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    21
You can disable the pager for certain commands by adding them to the
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    22
pager.ignore list::
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    23
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    24
  [pager]
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    25
  ignore = version, help, update
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    26
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    27
To ignore global commands like :hg:`version` or :hg:`help`, you have
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    28
to specify them in your user configuration file.
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    29
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    30
To control whether the pager is used at all for an individual command,
32084
091d6b9157da help: apply bulk fixes for indentation and literal blocking issues
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32081
diff changeset
    31
you can use --pager=<value>:
31061
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    32
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    33
  - use as needed: `auto`.
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    34
  - require the pager: `yes` or `on`.
900996da577a pager: move most help to a new help topic and deprecate extension
Augie Fackler <augie@google.com>
parents:
diff changeset
    35
  - suppress the pager: `no` or `off` (any unrecognized value
32084
091d6b9157da help: apply bulk fixes for indentation and literal blocking issues
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32081
diff changeset
    36
    will also work).
31062
88203f26ea57 pager: add a config knob to just globally turn off the pager
Augie Fackler <augie@google.com>
parents: 31061
diff changeset
    37
88203f26ea57 pager: add a config knob to just globally turn off the pager
Augie Fackler <augie@google.com>
parents: 31061
diff changeset
    38
To globally turn off all attempts to use a pager, set::
88203f26ea57 pager: add a config knob to just globally turn off the pager
Augie Fackler <augie@google.com>
parents: 31061
diff changeset
    39
32104
f06d23af6cdf pager: rename 'pager.enable' to 'ui.paginate'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 32084
diff changeset
    40
  [ui]
f06d23af6cdf pager: rename 'pager.enable' to 'ui.paginate'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 32084
diff changeset
    41
  paginate = never
31062
88203f26ea57 pager: add a config knob to just globally turn off the pager
Augie Fackler <augie@google.com>
parents: 31061
diff changeset
    42
88203f26ea57 pager: add a config knob to just globally turn off the pager
Augie Fackler <augie@google.com>
parents: 31061
diff changeset
    43
which will prevent the pager from running.