Re: [PATCH 3/4] range-diff: make use of different output indicators
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Aug 13, 2018, 11:51 UTC
- Message-ID
- <nycvar.QRO.7.76.6.1808131348120.71@tvgsbejvaqbjf.bet>
- In-Reply-To
- <20180810224923.143625-4-sbeller@google.com>
Hi Stefan,
On Fri, 10 Aug 2018, Stefan Beller wrote:
Show 41 quoted lines
> This change itself only changes the internal communication and should
> have no visible effect to the user. We instruct the diff code that produces
> the inner diffs to use X, Y, Z instead of the usual markers for new, old
> and context lines
>
> Signed-off-by: Stefan Beller <sbeller@google.com>
> ---
> range-diff.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/range-diff.c b/range-diff.c
> index b6b9abac266..6e4192c8e79 100644
> --- a/range-diff.c
> +++ b/range-diff.c
> @@ -38,6 +38,9 @@ static int read_patches(const char *range, struct string_list *list)
>
> argv_array_pushl(&cp.args, "log", "--no-color", "-p", "--no-merges",
> "--reverse", "--date-order", "--decorate=no",
> + "--output-indicator-new=X",
> + "--output-indicator-old=Y",
> + "--output-indicator-context=Z",
> "--no-abbrev-commit", range,
> NULL);
> cp.out = -1;
> @@ -108,8 +111,18 @@ static int read_patches(const char *range, struct string_list *list)
> * we are not interested.
> */
> continue;
> - else
> + else if (line.buf[0] == 'X') {
> + strbuf_addch(&buf, '+');
> + strbuf_add(&buf, line.buf + 1, line.len - 1);
> + } else if (line.buf[0] == 'Y') {
> + strbuf_addch(&buf, '-');
> + strbuf_add(&buf, line.buf + 1, line.len - 1);
> + } else if (line.buf[0] == 'Z') {
> + strbuf_addch(&buf, ' ');
> + strbuf_add(&buf, line.buf + 1, line.len - 1);
> + } else {
> strbuf_addbuf(&buf, &line);
> + }My preliminary reading (I sadly lack the time to pull your branch and play with it) suggests that this works, although I have to admit that X/Y/Z would confuse me in 6 months from now, as they do not really read like diff markers but like plain text. I could imagine that '>', '<' and '#' would not impart that confusion on me.
Ciao, Dscho
Show 7 quoted lines
> > strbuf_addch(&buf, '\n'); > util->diffsize++; > -- > 2.18.0.865.gffc8e1a3cd6-goog > >