When picking commits by using for example git-cherry-pick(1) we end up printing a commit summary that gives the reader information around what exactly we have been picking: ``` $ git cherry-pick main [other 76c8456] bar Date: Tue Aug 19 08:07:26 2025 +0200 1 file changed, 1 insertion(+) create mode 100644 bar ``` While useful for some commands, we're about to introduce a new command where this output will be less so. But right now there is no way to disable printing this commit summary. Introduce a new `skip_commit_summary` replay option that does so. Persist the option into the sequencer configuration so that it persists across different processes, e.g. when we need to stop due to a merge conflict. Signed-off-by: Patrick Steinhardt <ps@xxxxxx> --- sequencer.c | 12 +++++++++--- sequencer.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/sequencer.c b/sequencer.c index aaf2e4df64..7066cdc939 100644 --- a/sequencer.c +++ b/sequencer.c @@ -1742,7 +1742,7 @@ static int do_commit(struct repository *r, refs_delete_ref(get_main_ref_store(r), "", "CHERRY_PICK_HEAD", NULL, REF_NO_DEREF); unlink(git_path_merge_msg(r)); - if (!is_rebase_i(opts)) + if (!is_rebase_i(opts) && !opts->skip_commit_summary) print_commit_summary(r, NULL, &oid, SUMMARY_SHOW_AUTHOR_DATE); return res; @@ -3139,8 +3139,12 @@ static int populate_opts_cb(const char *key, const char *value, else if (!strcmp(key, "options.default-msg-cleanup")) { opts->explicit_cleanup = 1; opts->default_msg_cleanup = get_cleanup_mode(value, 1); - } else + } else if (!strcmp(key, "options.skip-commit-summary")) { + opts->skip_commit_summary = + git_config_bool_or_int(key, value, ctx->kvi, &error_flag); + } else { return error(_("invalid key: %s"), key); + } if (!error_flag) return error(_("invalid value for '%s': '%s'"), key, value); @@ -3698,11 +3702,13 @@ static int save_opts(struct replay_opts *opts) "options.allow-rerere-auto", NULL, opts->allow_rerere_auto == RERERE_AUTOUPDATE ? "true" : "false"); - if (opts->explicit_cleanup) res |= repo_config_set_in_file_gently(the_repository, opts_file, "options.default-msg-cleanup", NULL, describe_cleanup_mode(opts->default_msg_cleanup)); + if (opts->skip_commit_summary) + res |= repo_config_set_in_file_gently(the_repository, opts_file, + "options.skip-commit-summary", NULL, "true"); return res; } diff --git a/sequencer.h b/sequencer.h index 304ba4b4d3..1767fd737e 100644 --- a/sequencer.h +++ b/sequencer.h @@ -52,6 +52,7 @@ struct replay_opts { int keep_redundant_commits; int verbose; int quiet; + int skip_commit_summary; int reschedule_failed_exec; int committer_date_is_author_date; int ignore_date; -- 2.51.0.308.g032396e0da.dirty