Felipe Contreras <felipe.contre...@gmail.com> writes:

> Also, add a new option: 'auto', so if there's more than one patch, the
> cover letter is generated, otherwise it's not.
>
> Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
> ---
>  Documentation/config.txt           |  6 ++++++
>  Documentation/git-format-patch.txt |  5 +++--
>  builtin/log.c                      | 22 ++++++++++++++++------
>  3 files changed, 25 insertions(+), 8 deletions(-)
>
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index c8e2178..c10195c 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -1092,6 +1092,12 @@ format.signoff::
>      the rights to submit this work under the same open source license.
>      Please see the 'SubmittingPatches' document for further discussion.
>  
> +format.cover-letter::

I thought I saw somebody already pointed out that this was wrong.

> +     Allows to configure the --cover-letter option of format-patch by
> +     default.
> +     In addition, you can set it to 'auto' to automatically
> +     determine based on the number of patches (generate if there's more than
> +     one).

I find this somewhat a strange phrasing.  It _sets_ the default for
the cover-letter option, either to true or false or auto, so there
is no "in addition" about it.

Perhaps

format.coverLetter::
        Setting this variable to `true` (or `false`) tells the
        `format-patch` command to pretend the `--cover-letter` (or
        `--no-cover-letter`) was given from the command line.  When
        set to `auto`, `format-patch` assumes `--cover-letter` if
        and only if it is working on more than one commit.

or something?

It also is somewhat strange why the command line argument does not
accept `--cover-letter=auto` option.  In general, a configuration
variable should not be more flexible mechanism than what the command
line could give the user.  As I already said, I think that would be
a better longer-term default, and that makes it even more stand-out.

> @@ -1360,6 +1366,8 @@ int cmd_format_patch(int argc, const char **argv, const 
> char *prefix)
>               numbered = 1;
>       if (numbered)
>               rev.total = total + start_number - 1;
> +     if (cover_letter == -1)
> +             cover_letter = (total > 1);
>       if (in_reply_to || thread || cover_letter)
>               rev.ref_message_ids = xcalloc(1, sizeof(struct string_list));
>       if (in_reply_to) {
> @@ -1371,6 +1379,8 @@ int cmd_format_patch(int argc, const char **argv, const 
> char *prefix)
>       if (cover_letter) {
>               if (thread)
>                       gen_message_id(&rev, "cover");
> +             if (!branch_name)
> +                     branch_name = find_branch_name(&rev);
>               make_cover_letter(&rev, use_stdout,
>                                 origin, nr, list, head, branch_name, quiet);
>               total++;

This part is nicely done, thanks to the previous two steps.  You
might even want to remove the call to the find_branch_name() helper
function from here, and instead call it from make_cover_letter()
when branch_name is not yet there.

We would need tests to make sure future changes will not break this.

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to