b4: introduce configuration for the Git project

In the preceding commit we have extended our documentation to recommend
b4 for sending patch series to the mailing list. Introduce configuration
so that it knows to honor preferences of the Git project by default. For
now, this configuration does two things:

  - It configures "send-same-thread = shallow", which tells b4 to always
    send subsequent versions of the same patch series as a reply to the
    cover letter of the first version.

  - It configures "prep-cover-template", which tells b4 to use a custom
    template for the cover letter. The most important change compared to
    the default template is that our custom template also includes a
    range-diff.

There's potentially more things that we may want to configure going
forward, like for example auto-configuration of folks to Cc on certain
patches. But these two tweaks feel like a good place to start.

Note that these values only serve as defaults, and users may want to
tweak those defaults based on their own preference. Luckily, users can
do that without having to touch `.b4-config` at all, as b4 allows them
to override values via Git configuration:

    ```
    $ git config set b4.prep-cover-template /does/not/exist
    $ b4 send --dry-run
    ERROR: prep-cover-template says to use x, but it does not exist
    ```

So this gives users an easy way to override our defaults without having
to touch ".b4-config", which would dirty the tree.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt
2026-06-15 14:59:43 +02:00
committed by Junio C Hamano
parent efe4ac7064
commit 84b2ff7f2f
2 changed files with 17 additions and 0 deletions

6
.b4-config Normal file
View File

@@ -0,0 +1,6 @@
# Note that these are default values that you can tweak via the typical
# git-config(1) machinery. You thus shouldn't ever have to change this file.
# See also https://b4.docs.kernel.org/en/latest/config.html.
[b4]
send-same-thread = shallow
prep-cover-template = ./.b4-cover-template

11
.b4-cover-template Normal file
View File

@@ -0,0 +1,11 @@
${cover}
---
${shortlog}
${diffstat}
${range_diff}
---
base-commit: ${base_commit}
${prerequisites}