ba3c69a9 (commit: teach --gpg-sign option, 2011-10-05) introduced a "signed commit" by teaching --[no-gpg-sign option and commit.gpgsign configuration variable to various commands that create commits. Teaching these to "git commit" and "git merge", both of which are end-user facing Porcelain commands, was perfectly fine. Allowing the plumbing "git commit-tree" to suddenly change the behaviour to surprise the scripts by paying attention to commit.gpgsign was not. Among the in-tree scripts, filter-branch, quiltimport, rebase and stash are the commands that run "commit-tree". If any of these wants to allow users to always sign every single commit, they should offer their own configuration (e.g. "filterBranch..gpgsign") with an option to disable (e.g. "git filter-branch --no-gpgsign"). Ignoring commit.gpgsign option _obviously_ breaks the backward compatibility, but I seriously doubt anybody sane is depending on this misfeature that commit-tree blindly follows commit.gpgsign in any third-party script that calls it. Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- * This is an simpler alternative that forces commit-tree callers that want to honor commit.gpgsign to do so themselves. builtin/commit-tree.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/builtin/commit-tree.c b/builtin/commit-tree.c index 3feeffe..e4ba0d8 100644 --- a/builtin/commit-tree.c +++ b/builtin/commit-tree.c @@ -8,7 +8,6 @@ #include "tree.h" #include "builtin.h" #include "utf8.h" -#include "gpg-interface.h" static const char commit_tree_usage[] = "git commit-tree [(-p <sha1>)...] [-S[<keyid>]] [-m <message>] [-F <file>] <sha1>"; @@ -28,18 +27,6 @@ static void new_parent(struct commit *parent, struct commit_list **parents_p) commit_list_insert(parent, parents_p); } -static int commit_tree_config(const char *var, const char *value, void *cb) -{ - int status = git_gpg_config(var, value, NULL); - if (status) - return status; - if (!strcmp(var, "commit.gpgsign")) { - sign_commit = git_config_bool(var, value) ? "" : NULL; - return 0; - } - return git_default_config(var, value, cb); -} - int cmd_commit_tree(int argc, const char **argv, const char *prefix) { int i, got_tree = 0; @@ -48,7 +35,7 @@ int cmd_commit_tree(int argc, const char **argv, const char *prefix) unsigned char commit_sha1[20]; struct strbuf buffer = STRBUF_INIT; - git_config(commit_tree_config, NULL); + git_config(git_default_config, NULL); if (argc < 2 || !strcmp(argv[1], "-h")) usage(commit_tree_usage); -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html