]> git.ipfire.org Git - thirdparty/git.git/commitdiff
range-diff: output `## Notes ##` header
authorDenton Liu <liu.denton@gmail.com>
Wed, 20 Nov 2019 21:18:43 +0000 (13:18 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 21 Nov 2019 00:29:52 +0000 (09:29 +0900)
When notes were included in the output of range-diff, they were just
mashed together with the rest of the commit message. As a result, users
wouldn't be able to clearly distinguish where the commit message ended
and where the notes started.

Output a `## Notes ##` header when notes are detected so that notes can
be compared more clearly.

Note that we handle case of `Notes (<ref>): -> ## Notes (<ref>) ##` with
this code as well. We can't test this in this patch, however, since
there is currently no way to pass along different notes refs to `git
log`. This will be fixed in a future patch.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
range-diff.c
t/t3206-range-diff.sh

index 7fed5a3b4bb54a53f434cf23fb96151e9a8f824d..623397221daf47660073712f56b7e10b37b4e485 100644 (file)
@@ -144,6 +144,12 @@ static int read_patches(const char *range, struct string_list *list)
                                strbuf_addstr(&buf, line);
                                strbuf_addstr(&buf, "\n\n");
                                strbuf_addstr(&buf, " ## Commit message ##\n");
+                       } else if (starts_with(line, "Notes") &&
+                                  line[strlen(line) - 1] == ':') {
+                               strbuf_addstr(&buf, "\n\n");
+                               /* strip the trailing colon */
+                               strbuf_addf(&buf, " ## %.*s ##\n",
+                                           (int)(strlen(line) - 1), line);
                        } else if (starts_with(line, "    ")) {
                                p = line + len - 2;
                                while (isspace(*p) && p >= line)
index 19ba6449332d2977dcf518f58653e3feaa634dd3..b936c16dd1b2bf1b8684d79e9a4d002d1d98c3fe 100755 (executable)
@@ -516,10 +516,10 @@ test_expect_success 'range-diff compares notes by default' '
        2:  $(test_oid t2) = 2:  $(test_oid u2) s/4/A/
        3:  $(test_oid t3) = 3:  $(test_oid u3) s/11/B/
        4:  $(test_oid t4) ! 4:  $(test_oid u4) s/12/B/
-           @@ Metadata
+           @@ Commit message
            Z
-           Z ## Commit message ##
-           Z    s/12/B/
+           Z
+           Z ## Notes ##
            -    topic note
            +    unmodified note
            Z
@@ -543,17 +543,17 @@ test_expect_success 'format-patch --range-diff compares notes by default' '
        grep "= 3: .* s/11/B" 0000-* &&
        grep "! 4: .* s/12/B" 0000-* &&
        sed s/Z/\ /g >expect <<-EOF &&
-           @@ Metadata
+           @@ Commit message
            Z
-           Z ## Commit message ##
-           Z    s/12/B/
+           Z
+           Z ## Notes ##
            -    topic note
            +    unmodified note
            Z
            Z ## file ##
            Z@@ file: A
        EOF
-       sed "/@@ Metadata/,/@@ file: A/!d" 0000-* >actual &&
+       sed "/@@ Commit message/,/@@ file: A/!d" 0000-* >actual &&
        test_cmp expect actual
 '