Browse Source

Clean up "git log" format with DIFF_FORMAT_NO_OUTPUT

This fixes an unnecessary empty line that we add to the log message when
we generate diffs, but don't actually end up printing any due to having
DIFF_FORMAT_NO_OUTPUT set.

This can happen with pickaxe or with rename following. The reason is that
we normally add an empty line between the commit and the diff, but we do
that even for the case where we've then suppressed the actual printing of
the diff.

This also updates a couple of tests that assumed the extraneous empty
line would exist at the end of output.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
maint
Linus Torvalds 17 years ago committed by Shawn O. Pearce
parent
commit
304b5af64f
  1. 3
      log-tree.c
  2. 2
      t/t3900-i18n-commit.sh
  3. 1
      t/t4013/diff.log_-SF_master

3
log-tree.c

@ -321,7 +321,8 @@ int log_tree_diff_flush(struct rev_info *opt) @@ -321,7 +321,8 @@ int log_tree_diff_flush(struct rev_info *opt)
* output for readability.
*/
show_log(opt, opt->diffopt.msg_sep);
if (opt->verbose_header &&
if ((opt->diffopt.output_format & ~DIFF_FORMAT_NO_OUTPUT) &&
opt->verbose_header &&
opt->commit_format != CMIT_FMT_ONELINE) {
int pch = DIFF_FORMAT_DIFFSTAT | DIFF_FORMAT_PATCH;
if ((pch & opt->diffopt.output_format) == pch)

2
t/t3900-i18n-commit.sh

@ -8,7 +8,7 @@ test_description='commit and log output encodings' @@ -8,7 +8,7 @@ test_description='commit and log output encodings'
. ./test-lib.sh

compare_with () {
git show -s $1 | sed -e '1,/^$/d' -e 's/^ //' -e '$d' >current &&
git show -s $1 | sed -e '1,/^$/d' -e 's/^ //' >current &&
git diff current "$2"
}


1
t/t4013/diff.log_-SF_master

@ -4,5 +4,4 @@ Author: A U Thor <author@example.com> @@ -4,5 +4,4 @@ Author: A U Thor <author@example.com>
Date: Mon Jun 26 00:02:00 2006 +0000

Third

$

Loading…
Cancel
Save