Junio C Hamano <gits...@pobox.com> writes:

> ... and it is broken X-<.
>
> The blank line should be added before the diffstat, not after the
> notes message (t3307 shows a case where we give notes without
> diffstat, and we shouldn't be adding an extra blank line in that
> case.

Second try.

-- >8 --
Subject: format-patch: add a blank line between notes and diffstat

The last line of the note text comes immediately before the diffstat
block, making the latter unnecessarily harder to view.

Signed-off-by: Junio C Hamano <gits...@pobox.com>
---

 log-tree.c | 31 +++++++++++++++++++++----------
 1 file changed, 21 insertions(+), 10 deletions(-)

diff --git c/log-tree.c w/log-tree.c
index 712a22b..4f86def 100644
--- c/log-tree.c
+++ w/log-tree.c
@@ -727,15 +727,16 @@ int log_tree_diff_flush(struct rev_info *opt)
        }
 
        if (opt->loginfo && !opt->no_commit_id) {
-               /* When showing a verbose header (i.e. log message),
-                * and not in --pretty=oneline format, we would want
-                * an extra newline between the end of log and the
-                * output for readability.
-                */
                show_log(opt);
                if ((opt->diffopt.output_format & ~DIFF_FORMAT_NO_OUTPUT) &&
                    opt->verbose_header &&
                    opt->commit_format != CMIT_FMT_ONELINE) {
+                       /*
+                        * When showing a verbose header (i.e. log message),
+                        * and not in --pretty=oneline format, we would want
+                        * an extra newline between the end of log and the
+                        * diff/diffstat output for readability.
+                        */
                        int pch = DIFF_FORMAT_DIFFSTAT | DIFF_FORMAT_PATCH;
                        if (opt->diffopt.output_prefix) {
                                struct strbuf *msg = NULL;
@@ -743,11 +744,21 @@ int log_tree_diff_flush(struct rev_info *opt)
                                        opt->diffopt.output_prefix_data);
                                fwrite(msg->buf, msg->len, 1, stdout);
                        }
-                       if (!opt->shown_dashes) {
-                               if ((pch & opt->diffopt.output_format) == pch)
-                                       printf("---");
-                               putchar('\n');
-                       }
+
+                       /*
+                        * We may have shown three-dashes line early
+                        * between notes and the log message, in which
+                        * case we only want a blank line after the
+                        * notes without (an extra) three-dashes line.
+                        * Otherwise, we show the three-dashes line if
+                        * we are showing the patch with diffstat, but
+                        * in that case, there is no extra blank line
+                        * after the three-dashes line.
+                        */
+                       if (!opt->shown_dashes &&
+                           (pch & opt->diffopt.output_format) == pch)
+                               printf("---");
+                       putchar('\n');
                }
        }
        diff_flush(&opt->diffopt);
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to