Johannes Schindelin <johannes.schindelin@xxxxxx> writes: > The run_git_commit() function already knows how to amend commits, and > with this new option, it can also clean up commit messages (i.e. strip > out commented lines). This is needed to implement rebase -i's 'fixup' > and 'squash' commands as sequencer commands. > > Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> > --- > sequencer.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/sequencer.c b/sequencer.c > index fa77c82..cbc3742 100644 > --- a/sequencer.c > +++ b/sequencer.c > @@ -481,7 +481,8 @@ static char **read_author_script(void) > * author metadata. > */ > static int run_git_commit(const char *defmsg, struct replay_opts *opts, > - int allow_empty, int edit, int amend) > + int allow_empty, int edit, int amend, > + int cleanup_commit_message) > { > char **env = NULL; > struct argv_array array; Looks OK to me. This starts to look like calling for a single flag word even more, but it is a file-local helper so we can clean it up if it becomes necessary without affecting too many things later. > @@ -518,9 +519,12 @@ static int run_git_commit(const char *defmsg, struct replay_opts *opts, > argv_array_push(&array, "-s"); > if (defmsg) > argv_array_pushl(&array, "-F", defmsg, NULL); > + if (cleanup_commit_message) > + argv_array_push(&array, "--cleanup=strip"); > if (edit) > argv_array_push(&array, "-e"); > - else if (!opts->signoff && !opts->record_origin && > + else if (!cleanup_commit_message && > + !opts->signoff && !opts->record_origin && > git_config_get_value("commit.cleanup", &value)) > argv_array_push(&array, "--cleanup=verbatim"); > > @@ -785,7 +789,7 @@ static int do_pick_commit(enum todo_command command, struct commit *commit, > } > if (!opts->no_commit) > res = run_git_commit(opts->edit ? NULL : git_path_merge_msg(), > - opts, allow, opts->edit, 0); > + opts, allow, opts->edit, 0, 0); > > leave: > free_message(commit, &msg);