Johannes Schindelin <johannes.schinde...@gmx.de> 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.schinde...@gmx.de>
> ---
>  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);

Reply via email to