[PATCH] commit: Add commit.signoff configuration option
- From
Chris Down <chris@chrisdown.name>
- Date
- May 13, 2025, 12:20 UTC
- Message-ID
- <aCM5JY25NVPgyYRP@chrisdown.name>
Introduce a new `commit.signoff` config variable that mirrors the behavior of the -s/--signoff flag.
We already have prior art in format-patch with `format.signoff`; this brings parity for those who don’t use a patch-based workflow but still rely on signoffs.
Right now people who have to do this regularly often alias commit to `commit --signoff` in their shell, which is less than ideal -- this config option avoids having to do that.
Signed-off-by: Chris Down <chris@chrisdown.name> --- Documentation/signoff-option.adoc | 4 ++++ builtin/commit.c | 4 ++++ t/t7500-commit-template-squash-signoff.sh | 10 ++++++++++ 3 files changed, 18 insertions(+)
diff --git a/Documentation/signoff-option.adoc b/Documentation/signoff-option.adoc index cddfb225d1..0055874e84 100644 --- a/Documentation/signoff-option.adoc +++ b/Documentation/signoff-option.adoc @@ -13,6 +13,10 @@ endif::git-commit[] Linux kernel and Git projects.) Consult the documentation or leadership of the project to which you're contributing to understand how the signoffs are used in that project. +ifdef::git-commit[] + The `commit.signoff` configuration variable may also be used to imply + `--signoff`. +endif::git-commit[] + The `--no-signoff` option can be used to countermand an earlier `--signoff` option on the command line. diff --git a/builtin/commit.c b/builtin/commit.c index 66bd91fd52..da98895438 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -1670,6 +1670,10 @@ static int git_commit_config(const char *k, const char *v, &is_bool); return 0; } + if (!strcmp(k, "commit.signoff")) { + signoff = git_config_bool(k, v); + return 0; + } return git_status_config(k, v, ctx, s); } diff --git a/t/t7500-commit-template-squash-signoff.sh b/t/t7500-commit-template-squash-signoff.sh index 4dca8d97a7..03c20dcb1d 100755 --- a/t/t7500-commit-template-squash-signoff.sh +++ b/t/t7500-commit-template-squash-signoff.sh @@ -181,6 +181,16 @@ test_expect_success '--signoff' ' test_cmp expect output ' +test_expect_success 'config commit.signoff implies signoff' ' + git config commit.signoff true && + echo "871119" >> bar && + git add bar && + echo "zort" | git commit -F - bar && + git cat-file commit HEAD | sed "1,/^\$/d" > output && + test_cmp expect output && + git config --unset commit.signoff +' + test_expect_success 'commit message from file (1)' ' mkdir subdir && echo "Log in top directory" >log &&
-- 2.49.0