All of lore.kernel.org
 help / color / mirror / Atom feed
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 1/3] range-diff: move " ## filename ##" headers to the first column
Date: Tue, 17 Nov 2020 22:35:49 +0100	[thread overview]
Message-ID: <20201117213551.2539438-2-aclopte@gmail.com> (raw)
In-Reply-To: <20201117213551.2539438-1-aclopte@gmail.com>

Output of range-diff may include comparisons of metadata like commit messages
and filenames. Metadata lines look like " ## <content> ##".

When range-diff compares two matching commits, it computes a diff of two
special commit diffs. In these commit diffs, each changed file is introduced
with a " ## filename ##" line which is followed by the diff hunks with changes
to the file's contents.

The leading space makes it hard to distinguish between file metadata lines
and context lines from a diff hunk, especially when looking only at the
output of range-diff.  Drop the space prefix to facilitate that.
---
 range-diff.c          |  4 ++--
 t/t3206-range-diff.sh | 42 +++++++++++++++++++++---------------------
 2 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/range-diff.c b/range-diff.c
index 24dc435e48..72660453bd 100644
--- a/range-diff.c
+++ b/range-diff.c
@@ -136,7 +136,7 @@ static int read_patches(const char *range, struct string_list *list,
 			if (len < 0)
 				die(_("could not parse git header '%.*s'"),
 				    orig_len, line);
-			strbuf_addstr(&buf, " ## ");
+			strbuf_addstr(&buf, "## ");
 			if (patch.is_new > 0)
 				strbuf_addf(&buf, "%s (new)", patch.new_name);
 			else if (patch.is_delete > 0)
@@ -432,7 +432,7 @@ static void output_pair_header(struct diff_options *diffopt,
 }
 
 static struct userdiff_driver section_headers = {
-	.funcname = { "^ ## (.*) ##$\n"
+	.funcname = { "^ ?## (.*) ##$\n"
 		      "^.?@@ (.*)$", REG_EXTENDED }
 };
 
diff --git a/t/t3206-range-diff.sh b/t/t3206-range-diff.sh
index 6eb344be03..f875843b5e 100755
--- a/t/t3206-range-diff.sh
+++ b/t/t3206-range-diff.sh
@@ -304,8 +304,8 @@ test_expect_success 'renamed file' '
 	    -    s/4/A/
 	    +    s/4/A/ + rename file
 	    Z
-	    - ## file ##
-	    + ## file => renamed-file ##
+	    -## file ##
+	    +## file => renamed-file ##
 	    Z@@
 	    Z 1
 	    Z 2
@@ -314,9 +314,9 @@ test_expect_success 'renamed file' '
 	    Z ## Commit message ##
 	    Z    s/11/B/
 	    Z
-	    - ## file ##
+	    -## file ##
 	    -@@ file: A
-	    + ## renamed-file ##
+	    +## renamed-file ##
 	    +@@ renamed-file: A
 	    Z 8
 	    Z 9
@@ -326,9 +326,9 @@ test_expect_success 'renamed file' '
 	    Z ## Commit message ##
 	    Z    s/12/B/
 	    Z
-	    - ## file ##
+	    -## file ##
 	    -@@ file: A
-	    + ## renamed-file ##
+	    +## renamed-file ##
 	    +@@ renamed-file: A
 	    Z 9
 	    Z 10
@@ -348,14 +348,14 @@ test_expect_success 'file with mode only change' '
 	    -    s/4/A/
 	    +    s/4/A/ + add other-file
 	    Z
-	    Z ## file ##
+	    Z## file ##
 	    Z@@
 	    @@ file
 	    Z A
 	    Z 6
 	    Z 7
 	    +
-	    + ## other-file (new) ##
+	    +## other-file (new) ##
 	2:  $(test_oid t3) ! 2:  $(test_oid o2) s/11/B/
 	    @@ Metadata
 	    ZAuthor: Thomas Rast <trast@inf.ethz.ch>
@@ -364,14 +364,14 @@ test_expect_success 'file with mode only change' '
 	    -    s/11/B/
 	    +    s/11/B/ + mode change other-file
 	    Z
-	    Z ## file ##
+	    Z## file ##
 	    Z@@ file: A
 	    @@ file: A
 	    Z 12
 	    Z 13
 	    Z 14
 	    +
-	    + ## other-file (mode change 100644 => 100755) ##
+	    +## other-file (mode change 100644 => 100755) ##
 	3:  $(test_oid t4) = 3:  $(test_oid o3) s/12/B/
 	EOF
 	test_cmp expect actual
@@ -389,14 +389,14 @@ test_expect_success 'file added and later removed' '
 	    -    s/4/A/
 	    +    s/4/A/ + new-file
 	    Z
-	    Z ## file ##
+	    Z## file ##
 	    Z@@
 	    @@ file
 	    Z A
 	    Z 6
 	    Z 7
 	    +
-	    + ## new-file (new) ##
+	    +## new-file (new) ##
 	3:  $(test_oid t3) ! 3:  $(test_oid s3) s/11/B/
 	    @@ Metadata
 	    ZAuthor: Thomas Rast <trast@inf.ethz.ch>
@@ -405,14 +405,14 @@ test_expect_success 'file added and later removed' '
 	    -    s/11/B/
 	    +    s/11/B/ + remove file
 	    Z
-	    Z ## file ##
+	    Z## file ##
 	    Z@@ file: A
 	    @@ file: A
 	    Z 12
 	    Z 13
 	    Z 14
 	    +
-	    + ## new-file (deleted) ##
+	    +## new-file (deleted) ##
 	4:  $(test_oid t4) = 4:  $(test_oid s4) s/12/B/
 	EOF
 	test_cmp expect actual
@@ -434,7 +434,7 @@ test_expect_success 'changed message' '
 	    Z
 	    +    Also a silly comment here!
 	    +
-	    Z ## file ##
+	    Z## file ##
 	    Z@@
 	    Z 1
 	3:  $(test_oid t3) = 3:  $(test_oid m3) s/11/B/
@@ -453,7 +453,7 @@ test_expect_success 'dual-coloring' '
 	:     <RESET>
 	:    <REVERSE><GREEN>+<RESET><BOLD>    Also a silly comment here!<RESET>
 	:    <REVERSE><GREEN>+<RESET>
-	:      ## file ##<RESET>
+	:     ## file ##<RESET>
 	:    <CYAN> @@<RESET>
 	:      1<RESET>
 	:<RED>3:  $(test_oid c3) <RESET><YELLOW>!<RESET><GREEN> 3:  $(test_oid m3)<RESET><YELLOW> s/11/B/<RESET>
@@ -537,7 +537,7 @@ test_expect_success 'range-diff compares notes by default' '
 	    -    topic note
 	    +    unmodified note
 	    Z
-	    Z ## file ##
+	    Z## file ##
 	    Z@@ file: A
 	EOF
 	test_cmp expect actual
@@ -584,7 +584,7 @@ test_expect_success 'range-diff with multiple --notes' '
 	    -    topic note2
 	    +    unmodified note2
 	    Z
-	    Z ## file ##
+	    Z## file ##
 	    Z@@ file: A
 	EOF
 	test_cmp expect actual
@@ -645,7 +645,7 @@ test_expect_success 'format-patch --range-diff with --notes' '
 	    -    topic note
 	    +    unmodified note
 	    Z
-	    Z ## file ##
+	    Z## file ##
 	    Z@@ file: A
 	EOF
 	sed "/@@ Commit message/,/@@ file: A/!d" 0000-* >actual &&
@@ -674,7 +674,7 @@ test_expect_success 'format-patch --range-diff with format.notes config' '
 	    -    topic note
 	    +    unmodified note
 	    Z
-	    Z ## file ##
+	    Z## file ##
 	    Z@@ file: A
 	EOF
 	sed "/@@ Commit message/,/@@ file: A/!d" 0000-* >actual &&
@@ -710,7 +710,7 @@ test_expect_success 'format-patch --range-diff with multiple notes' '
 	    -    topic note2
 	    +    unmodified note2
 	    Z
-	    Z ## file ##
+	    Z## file ##
 	    Z@@ file: A
 	EOF
 	sed "/@@ Commit message/,/@@ file: A/!d" 0000-* >actual &&
-- 
2.29.2


  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     ` Johannes Altmanninger [this message]
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     ` [PATCH 3/3] range-diff: only compute patch diff when patches are different Johannes Altmanninger

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-2-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.