On 07/21, Johannes Schindelin via GitGitGadget wrote:
> From: Johannes Schindelin <johannes.schinde...@gmx.de>
> 
> This change brings `git range-diff` yet another step closer to
> feature parity with tbdiff: it now shows the oneline, too, and indicates
> with `=` when the commits have identical diffs.
> 
> Signed-off-by: Johannes Schindelin <johannes.schinde...@gmx.de>
> ---
>  range-diff.c | 64 ++++++++++++++++++++++++++++++++++++++++++++--------
>  1 file changed, 55 insertions(+), 9 deletions(-)
> 
> diff --git a/range-diff.c b/range-diff.c
> index 1ecee2c09..8329f52e7 100644
> --- a/range-diff.c
> +++ b/range-diff.c
> @@ -7,6 +7,8 @@
>  #include "xdiff-interface.h"
>  #include "linear-assignment.h"
>  #include "diffcore.h"
> +#include "commit.h"
> +#include "pretty.h"
>  
>  struct patch_util {
>       /* For the search for an exact match */
> @@ -255,9 +257,54 @@ static void get_correspondences(struct string_list *a, 
> struct string_list *b,
>       free(b2a);
>  }
>  
> -static const char *short_oid(struct patch_util *util)
> +static void output_pair_header(struct strbuf *buf,
> +                            struct strbuf *dashes,
> +                            struct patch_util *a_util,
> +                            struct patch_util *b_util)
>  {
> -     return find_unique_abbrev(&util->oid, DEFAULT_ABBREV);
> +     struct object_id *oid = a_util ? &a_util->oid : &b_util->oid;
> +     struct commit *commit;
> +
> +     if (!dashes->len)
> +             strbuf_addchars(dashes, '-',
> +                             strlen(find_unique_abbrev(oid,
> +                                                       DEFAULT_ABBREV)));
> +
> +     strbuf_reset(buf);
> +     if (!a_util)
> +             strbuf_addf(buf, "-:  %s ", dashes->buf);
> +     else
> +             strbuf_addf(buf, "%d:  %s ", a_util->i + 1,
> +                         find_unique_abbrev(&a_util->oid, DEFAULT_ABBREV));

I failed to notice this earlier, but here we are starting to use
util->i, which I was wondering about earlier.  Good :)

> +     if (!a_util)
> +             strbuf_addch(buf, '>');
> +     else if (!b_util)
> +             strbuf_addch(buf, '<');
> +     else if (strcmp(a_util->patch, b_util->patch))
> +             strbuf_addch(buf, '!');
> +     else
> +             strbuf_addch(buf, '=');
> +
> +     if (!b_util)
> +             strbuf_addf(buf, " -:  %s", dashes->buf);
> +     else
> +             strbuf_addf(buf, " %d:  %s", b_util->i + 1,
> +                         find_unique_abbrev(&b_util->oid, DEFAULT_ABBREV));

And here for range b.

> +
> [...]

Reply via email to