git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chris Down <chris@chrisdown.name>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>, kernel-team@fb.com
Subject: [PATCH] commit: Add commit.signoff configuration option
Date: Tue, 13 May 2025 13:20:53 +0100	[thread overview]
Message-ID: <aCM5JY25NVPgyYRP@chrisdown.name> (raw)

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


             reply	other threads:[~2025-05-13 12:20 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-13 12:20 Chris Down [this message]
2025-05-13 13:12 ` [PATCH] commit: Add commit.signoff configuration option Kristoffer Haugsbakk
2025-05-13 21:09 ` D. Ben Knoble
2025-05-14 16:46   ` Chris Down
2025-05-15  0:17     ` Junio C Hamano
2025-05-15 13:22       ` Chris Down
2025-05-16 13:09         ` Junio C Hamano
2025-05-16 15:04           ` Chris Down
2025-06-03  6:54             ` Chris Down
2025-06-04 13:32               ` Junio C Hamano
2025-06-05  1:46                 ` Collin Funk
2025-06-09  4:24                 ` Chris Down
2025-05-16 11:50     ` Ben Knoble
2025-05-16 14:28       ` Chris Down

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aCM5JY25NVPgyYRP@chrisdown.name \
    --to=chris@chrisdown.name \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=kernel-team@fb.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).