Hi Eric,

On Wed, 30 May 2018, Eric Sunshine wrote:

> diff --git a/builtin/log.c b/builtin/log.c
> index 460c31a293..e38cf06050 100644
> --- a/builtin/log.c
> +++ b/builtin/log.c
> @@ -995,10 +995,20 @@ static char *find_branch_name(struct rev_info *rev)
>  
>  static void infer_diff_ranges(struct argv_array *args,
>                             const char *prev,
> +                           struct commit *origin,
>                             struct commit *head)
>  {
> -     argv_array_pushf(args, "%s...%s", prev,
> -                      oid_to_hex(&head->object.oid));
> +     if (strstr(prev, "..")) {
> +             if (!origin)
> +                     die(_("failed to infer range-diff ranges"));
> +             argv_array_push(args, prev);
> +             argv_array_pushf(args, "%s..%s",
> +                              oid_to_hex(&origin->object.oid),
> +                              oid_to_hex(&head->object.oid));
> +     } else {
> +             argv_array_pushf(args, "%s...%s", prev,
> +                              oid_to_hex(&head->object.oid));
> +     }

This would be easier to read if the order was inverted:

        if (!strstr(...))
                ...
        else if (!origin)
                die(...)
        else {
                ...
        }

Otherwise, it makes sense to me.

Thanks,
Dscho

>  }
>  
>  static int get_range_diff(struct strbuf *sb,
> @@ -1059,7 +1069,7 @@ static void make_cover_letter(struct rev_info *rev, int 
> use_stdout,
>       /* might die from bad user input so try before creating cover letter */
>       if (range_diff) {
>               struct argv_array ranges = ARGV_ARRAY_INIT;
> -             infer_diff_ranges(&ranges, range_diff, head);
> +             infer_diff_ranges(&ranges, range_diff, origin, head);
>               if (get_range_diff(&diff, &ranges))
>                       die(_("failed to generate range-diff"));
>               argv_array_clear(&ranges);
> diff --git a/t/t7910-branch-diff.sh b/t/t7910-branch-diff.sh
> index edbd69b6f8..c0e8668ed9 100755
> --- a/t/t7910-branch-diff.sh
> +++ b/t/t7910-branch-diff.sh
> @@ -155,5 +155,6 @@ format_patch () {
>  }
>  
>  format_patch 'B...C' topic
> +format_patch 'A..B A..C' master..topic
>  
>  test_done
> -- 
> 2.17.1.1235.ge295dfb56e
> 
> 

Reply via email to