From: Johannes Altmanninger <aclopte@gmail.com>
To: gitster@pobox.com
Cc: git@vger.kernel.org, newren@gmail.com, peff@peff.net,
Johannes Altmanninger <aclopte@gmail.com>
Subject: [PATCH 3/3] range-diff: only compute patch diff when patches are different
Date: Tue, 17 Nov 2020 22:35:51 +0100 [thread overview]
Message-ID: <20201117213551.2539438-4-aclopte@gmail.com> (raw)
In-Reply-To: <20201117213551.2539438-1-aclopte@gmail.com>
This is a pure optimization, probably with negligible impact. I'm not sure
if it is a good idea because it could obscure future bugs.
---
range-diff.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/range-diff.c b/range-diff.c
index df2147ef79..343a71d3eb 100644
--- a/range-diff.c
+++ b/range-diff.c
@@ -388,7 +388,7 @@ static int are_diffs_equivalent(const char *a_diff, const char *b_diff) {
return 1;
}
-static void output_pair_header(struct diff_options *diffopt,
+static char output_pair_header(struct diff_options *diffopt,
int patch_no_width,
struct strbuf *buf,
struct strbuf *dashes,
@@ -456,6 +456,8 @@ static void output_pair_header(struct diff_options *diffopt,
strbuf_addf(buf, "%s\n", color_reset);
fwrite(buf->buf, buf->len, 1, diffopt->file);
+
+ return status;
}
static struct userdiff_driver section_headers = {
@@ -537,9 +539,9 @@ static void output(struct string_list *a, struct string_list *b,
/* Show matching LHS/RHS pair. */
if (j < b->nr) {
a_util = a->items[b_util->matching].util;
- output_pair_header(diffopt, patch_no_width,
+ char status = output_pair_header(diffopt, patch_no_width,
&buf, &dashes, a_util, b_util);
- if (!(diffopt->output_format & DIFF_FORMAT_NO_OUTPUT)) {
+ if (!(diffopt->output_format & DIFF_FORMAT_NO_OUTPUT) && status != '=') {
patch_diff(a_util->patch, a_util->diff_offset,
b_util->patch, b_util->diff_offset, diffopt);
diffopt->ignore_regex_nr = ignoring_context_only_changes;
--
2.29.2
prev parent reply other threads:[~2020-11-17 21:36 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-05 13:34 range-diff should suppress context-only changes? Jeff King
2020-11-05 20:55 ` Junio C Hamano
2020-11-17 21:35 ` Johannes Altmanninger
2020-11-17 21:35 ` [PATCH 1/3] range-diff: move " ## filename ##" headers to the first column Johannes Altmanninger
2020-11-17 21:35 ` [PATCH 2/3] range-diff: ignore context-only changes Johannes Altmanninger
2020-11-17 22:56 ` Eric Sunshine
2020-11-17 21:35 ` Johannes Altmanninger [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201117213551.2539438-4-aclopte@gmail.com \
--to=aclopte@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@gmail.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.