[PATCH v2 00/10] tag: only respect `pager.tag` in list-mode
- From
- Martin Ågren <martin.agren@gmail.com>
- Date
- Jul 17, 2017, 20:10 UTC
- Message-ID
- <cover.1500321657.git.martin.agren@gmail.com>
- In-Reply-To
- <cover.1499723297.git.martin.agren@gmail.com>
This is the second version of "[PATCH 0/7] tag: more fine-grained pager-configuration" [1]. That series introduced `pager.tag.list` to address the fact that `pager.tag` can be useful with `git tag -l` but actively hostile with `git tag -a`. Thanks to Junio, Peff and Brandon for helpful feedback.
After that feedback, v2 drops `pager.tag.list` and instead teaches `git tag` to only consider `pager.tag` in list-mode, as suggested by Peff.
Patches 1-3/10 replace patch 1/7. They move Documentation/technical/ api-builtin.txt into builtin.h, tweak the formatting and bring it up to date. I may have gone overboard making this 3 patches...
Patches 4-7/10 correspond to patches 2-5/7. `setup_auto_pager()' is now much simpler since we do not need to handle "tag.list" with a clever fallback strategy. IGNORE_PAGER_CONFIG is now called DELAY_PAGER_CONFIG. I now check with pager_in_use() and I moved the handling of `pager.tag` a bit further down.
Patches 8-9/10 teach `git tag` to only respect `pager.tag` in list-mode and flip the default value for that config to "on".
Patch 10/10 is somewhat similar to a hunk in patch 2/7, but is now a bug-fix instead of a feature. It teaches `execv_dashed_external()` not to check `pager.foo` when launching `git-foo` where foo is a builtin. I waffled about where to put this patch. Putting it earlier in the series as a preparatory step, I couldn't come up with a way of writing a test. So patch 8/10 introduces a `test_expect_failure` which this patch then fixes.
Martin
[1] https://public-inbox.org/git/cover.1499723297.git.martin.agren@gmail.com/T/
Martin Ågren (10): builtin.h: take over documentation from api-builtin.txt builtin.h: format documentation-comment properly builtin.h: document SUPPORT_SUPER_PREFIX git.c: let builtins opt for handling `pager.foo` themselves git.c: provide setup_auto_pager() t7006: add tests for how git tag paginates tag: handle `pager.tag`-configuration within the builtin tag: respect `pager.tag` in list-mode only tag: change default of `pager.tag` to "on" git.c: ignore pager.* when launching builtin as dashed external
Documentation/git-tag.txt | 3 + Documentation/technical/api-builtin.txt | 73 ------------------------- t/t7006-pager.sh | 85 +++++++++++++++++++++++++++++ builtin.h | 97 +++++++++++++++++++++++++++++++++ builtin/tag.c | 3 + git.c | 18 +++++- 6 files changed, 203 insertions(+), 76 deletions(-) delete mode 100644 Documentation/technical/api-builtin.txt
-- 2.14.0.rc0