I'm not posting this for inclusion (yet), but because I read this: On 4 November 2017 at 10:28, Jeff King <peff@xxxxxxxx> wrote: > - the pager.<cmd> config is mis-designed, because our config keys > cannot represent all possible command names (e.g., case folding and > illegal characters). This should be pager.<cmd>.enable or similar. > Some discussion in (this message and the surrounding thread): > > https://public-inbox.org/git/20170711101942.h2uwxtgzvgguzivu@xxxxxxxxxxxxxxxxxxxxx/ > > But I think you could find more by searching the archive. I'm posting four patches I have on this to save others from redoing my work and findings. These patches feel a bit incomplete, which is why I put them to the side some time ago (and eventually forgot about them). In particular, they do not teach `--paginate` to use the pager configured by `pager.foo.command`. It is already now possible to use `pager.foo` to say "I don't want you to page, but if I later give you `pager.foo=true`, this is the pager I want you to use". That does not work with `--paginate`, but this can all be explained -- indeed, we document that `--paginate` overrules `pager.foo`. If we teach `--paginate` to respect `pager.foo.command`, it seems that we would either 1) introduce a small (and possibly hard to understand and explain) difference between the old-style and the new-style pager-configuration or 2) knowingly change the behavior of `--paginate` with `pager.foo` or 3) knowingly change the behavior of `pager.foo=false` as documented in the first patch. I think there's great value to being able to say "this is the same as this, and that is the same as that", but that might get muddied by "oh, except if you use `--paginate`". If someone wants to pick these up and bring them to completion, great! If not and if I or someone else feels confident about which way to go, then I can revisit these. Martin Martin Ågren (4): t7006: document that `pager.foo` can be partially preserved pager: refactor `pager_command_config()` pager: introduce `pager.*.command` and `.enable` pager: make `pager.foo.command` imply `.enable=true` Documentation/config.txt | 19 +++++++++ Documentation/git-tag.txt | 3 +- Documentation/git.txt | 2 +- t/t7006-pager.sh | 98 +++++++++++++++++++++++++++++++++++++++++++++++ pager.c | 16 +++++++- 5 files changed, 134 insertions(+), 4 deletions(-) -- 2.15.0.415.gac1375d7e