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@xxxxxxxxxxx> @@ -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@xxxxxxxxxxx> @@ -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