[PATCH v3 0/2] format-patch: learn --[no-]range-diff-notes
- From
- kristofferhaugsbakk@fastmail.com <kristofferhaugsbakk@fastmail.com>
- Date
- Oct 2, 2026, 10:56 UTC
- Message-ID
- <V3_CV_format-patch_learn_--range-diff-notes.d39@m5gid.xyz>
- In-Reply-To
- <CV_format-patch_learn_--range-diff-notes.c57@msgid.xyz>
From: Kristoffer Haugsbakk <code@khaugsbakk.name>
Topic name (applied): kh/format-patch-range-diff-notes
Topic summary: Teach 'format-patch' options to tweak notes output in the range diff independent of what notes are output in the patches.
See patch 2/2 for details.
This is motivated by wanting to turn off range diff notes, but the goal here is to implement it in full generality.
(How many of us `git format-patch --notes` users are there out there? More than a dozen? Maybe just D. Ben Knoble and me?)
I have implemented this behavior for myself and used it for many months. But that was hacky and only suitable for one person’s use. So this is a completely new implementation. In other words: this is new code, *not* tested for months.
§ Changes in v3
From patch 2/2:
Remove repeated and redundant `test_when_finished` on patch files:
https://lore.kernel.org/git/CV_format-patch_learn_--range-diff-notes.c57@msgid.xyz/T/#m06803e233a2e385e694432d45ecf402f7a67e482
§ Link to v2
https://lore.kernel.org/git/V2_CV_format-patch_learn_--range-diff-notes.cdb@m5gid.xyz/
[1/2] format-patch: simplify get_notes_arg parameters [2/2] format-patch: learn --[no-]range-diff-notes
Documentation/git-format-patch.adoc | 15 +++++ builtin/log.c | 62 +++++++++++++++++++-- t/t3206-range-diff.sh | 86 +++++++++++++++++++++++++++++ 3 files changed, 157 insertions(+), 6 deletions(-)
Interdiff against v2:
diff --git a/t/t3206-range-diff.sh b/t/t3206-range-diff.sh index 640c5dec52e..679a707c873 100755 --- a/t/t3206-range-diff.sh +++ b/t/t3206-range-diff.sh @@ -860,7 +860,6 @@ test_expect_success 'format-patch --range-diff-notes=not-a-note (no --range-diff test_when_finished "rm -f 000?-*" && git format-patch --range-diff-notes=not-a-note --cover-letter \ main..unmodified && - test_when_finished "rm -f 000?-*" && test_file_not_empty 0000-cover-letter* && test_grep ! "^Range-diff:" 0000-cover-letter* && test_grep ! "## Notes " 0000-cover-letter* Range-diff against v2: 1: 977f9c2e97a = 1: 977f9c2e97a format-patch: simplify get_notes_arg parameters 2: bf66e94e376 ! 2: 748759ca021 format-patch: learn --[no-]range-diff-notes @@ Commit message ## Notes (testing) ## - CI: https://github.com/LemmingAvalanche/git/actions/runs/36231842902 - - This run is on a previous iteration where v1 patch/commit 2/3 was still - there. But that is just a rename. So I compiled and tested - `t/t3206-range-diff.sh` and took that as proof that the full CI/build run - is still valid. + For v3: only compiled and ran `t3206-range-diff`. ## Documentation/git-format-patch.adoc ## @@ Documentation/git-format-patch.adoc: case is to show comparison with an older iteration of the same @@ t/t3206-range-diff.sh: test_expect_success 'format-patch --range-diff with multi + test_when_finished "rm -f 000?-*" && + git format-patch --range-diff-notes=not-a-note --cover-letter \ + main..unmodified && -+ test_when_finished "rm -f 000?-*" && + test_file_not_empty 0000-cover-letter* && + test_grep ! "^Range-diff:" 0000-cover-letter* && + test_grep ! "## Notes " 0000-cover-letter* base-commit: 1a3e64c6c4a623626ff0687008732a8e007e2a1c
-- 2.55.0.793.gc667de3f2c5