git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v3 0/5] builtin/history: some smaller UI improvements

From
Patrick Steinhardt <ps@pks.im>
Date
Feb 16, 2026, 06:45 UTC
Message-ID
<20260216-b4-pks-history-dry-run-v3-0-c4db58a651fc@pks.im>
In-Reply-To
<20260212-b4-pks-history-dry-run-v1-0-1ce03d631c1b@pks.im>
Hi,

this patch series contains a small set of UI improvements for git-history(1):

  - The first two commits adapt git-history(1) so that it performs
    verifications before asking the user for input.
  - The last two commits rework the "--ref-action=" option to instead be
    split up into "--dry-run" and "--update-refs=" so that the option is
    less focussed on technical implementation details.

I decided to send this patch series as a small incremental step before sending `git history split`, also because that series conflicts with aa/add-p-no-auto-advance.

Changes in v3:
  - Fix a typo in the commit message.
  - Link to v2: https://lore.kernel.org/r/20260213-b4-pks-history-dry-run-v2-0-756ac376e9e5@pks.im
Changes in v2:
  - Use `strvec_pushv()` instead of looping around `strvec_push()`.
  - Document that "--dry-run" writes objects for later use.
  - Document the default value of "--update-refs=".
  - Mention the subtlety around false(1) in the commit messages.
  - Link to v1: https://lore.kernel.org/r/20260212-b4-pks-history-dry-run-v1-0-1ce03d631c1b@pks.im
Thanks!
Patrick
---
Patrick Steinhardt (5):
      builtin/history: perform revwalk checks before asking for user input
      builtin/history: check for merges before asking for user input
      builtin/history: replace "--ref-action=print" with "--dry-run"
      builtin/history: rename "--ref-action=" to "--update-refs="
      Documentation/git-history: document default for "--update-refs="
 Documentation/git-history.adoc |  14 ++-
 builtin/history.c              | 254 ++++++++++++++++++++++++++---------------
 t/t3451-history-reword.sh      |  20 +++-
 3 files changed, 182 insertions(+), 106 deletions(-)
Range-diff versus v2:
1:  26db5f0113 = 1:  21b4933c39 builtin/history: perform revwalk checks before asking for user input
2:  9bcde0b932 = 2:  37e42cf770 builtin/history: check for merges before asking for user input
3:  e070d8ecfa ! 3:  fcfd80b2b5 builtin/history: replace "--ref-action=print" with "--dry-run"
    @@ Commit message
         will always operate as if the user wanted to rewrite all branches. But
         in fact, the user also has the option to only update the HEAD reference,
         and they might want to perform a dry-run of such an operation, too. We
    -    could of course introduce "--ref-actoin=print-head", but that would
    +    could of course introduce "--ref-action=print-head", but that would
         become even less ergonomic.
     
         Replace "--ref-action=print" with a new "--dry-run" toggle. This new
4:  59f470b158 = 4:  8333a4ebd6 builtin/history: rename "--ref-action=" to "--update-refs="
5:  bde39d43a9 = 5:  9ef41103f0 Documentation/git-history: document default for "--update-refs="

--- base-commit: 6fcee4785280a08e7f271bd015a4dc33753e2886 change-id: 20260212-b4-pks-history-dry-run-2b840e530ae6

Previous: Junio C HamanoNext: Patrick Steinhardt
Message 29 of 34 in “builtin/history: some smaller UI improvements”
  1. 0/4 builtin/history: some smaller UI improvementsPatrick Steinhardt, Feb 12, 2026
  2. 1/4 builtin/history: perform revwalk checks before asking for user inputPatrick Steinhardt, Feb 12, 2026
  3. Junio C HamanoFeb 12, 2026
  4. Patrick SteinhardtFeb 13, 2026
  5. Junio C HamanoFeb 13, 2026
  6. 2/4 builtin/history: check for merges before asking for user inputPatrick Steinhardt, Feb 12, 2026
  7. D. Ben KnobleFeb 12, 2026
  8. Junio C HamanoFeb 12, 2026
  9. Patrick SteinhardtFeb 13, 2026
  10. Patrick SteinhardtFeb 13, 2026
  11. Ben KnobleFeb 13, 2026
  12. 3/4 builtin/history: replace "--ref-action=print" with "--dry-run"Patrick Steinhardt, Feb 12, 2026
  13. Junio C HamanoFeb 12, 2026
  14. Patrick SteinhardtFeb 13, 2026
  15. D. Ben KnobleFeb 12, 2026
  16. Patrick SteinhardtFeb 13, 2026
  17. 4/4 builtin/history: rename "--ref-action=" to "--update-refs="Patrick Steinhardt, Feb 12, 2026
  18. 0/5 builtin/history: some smaller UI improvementsPatrick Steinhardt, Feb 13, 2026
  19. 1/5 builtin/history: perform revwalk checks before asking for user inputPatrick Steinhardt, Feb 13, 2026
  20. Junio C HamanoFeb 13, 2026
  21. 2/5 builtin/history: check for merges before asking for user inputPatrick Steinhardt, Feb 13, 2026
  22. 3/5 builtin/history: replace "--ref-action=print" with "--dry-run"Patrick Steinhardt, Feb 13, 2026
  23. Kristoffer HaugsbakkFeb 13, 2026
  24. Patrick SteinhardtFeb 16, 2026
  25. Kristoffer HaugsbakkFeb 18, 2026
  26. 4/5 builtin/history: rename "--ref-action=" to "--update-refs="Patrick Steinhardt, Feb 13, 2026
  27. 5/5 Documentation/git-history: document default for "--update-refs="Patrick Steinhardt, Feb 13, 2026
  28. Junio C HamanoFeb 13, 2026
  29. 0/5 builtin/history: some smaller UI improvementsPatrick Steinhardt, Feb 16, 2026
  30. 1/5 builtin/history: perform revwalk checks before asking for user inputPatrick Steinhardt, Feb 16, 2026
  31. 2/5 builtin/history: check for merges before asking for user inputPatrick Steinhardt, Feb 16, 2026
  32. 3/5 builtin/history: replace "--ref-action=print" with "--dry-run"Patrick Steinhardt, Feb 16, 2026
  33. 4/5 builtin/history: rename "--ref-action=" to "--update-refs="Patrick Steinhardt, Feb 16, 2026
  34. 5/5 Documentation/git-history: document default for "--update-refs="Patrick Steinhardt, Feb 16, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.