diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-08-11 22:15:28 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-08-11 22:15:28 -0700 |
commit | 04c6e9e9ca34226db095bbaa1218030f99f0b7c6 (patch) | |
tree | 908b3080f7e373c20805d917bba6c2c2d505da1d | |
parent | 7e4ad908721445b073f3b4ecad55bbd78f032cdc (diff) | |
download | git-04c6e9e9ca34226db095bbaa1218030f99f0b7c6.tar.gz git-04c6e9e9ca34226db095bbaa1218030f99f0b7c6.tar.xz |
diff --check: do not unconditionally complain about trailing empty lines
Recently "git diff --check" learned to detect new trailing blank lines
just like "git apply --whitespace" does. However this check should not
trigger unconditionally. This patch makes it honor the whitespace
settings from core.whitespace and gitattributes.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | diff.c | 3 | ||||
-rwxr-xr-x | t/t4019-diff-wserror.sh | 20 |
2 files changed, 21 insertions, 2 deletions
@@ -1631,7 +1631,8 @@ static void builtin_checkdiff(const char *name_a, const char *name_b, ecb.priv = &data; xdi_diff(&mf1, &mf2, &xpp, &xecfg, &ecb); - if (data.trailing_blanks_start) { + if ((data.ws_rule & WS_TRAILING_SPACE) && + data.trailing_blanks_start) { fprintf(o->file, "%s:%d: ends with blank lines.\n", data.filename, data.trailing_blanks_start); data.status = 1; /* report errors */ diff --git a/t/t4019-diff-wserror.sh b/t/t4019-diff-wserror.sh index 0d9cbb626..7eae1f450 100755 --- a/t/t4019-diff-wserror.sh +++ b/t/t4019-diff-wserror.sh @@ -13,7 +13,8 @@ test_expect_success setup ' echo " HT and SP indent" >>F && echo "With trailing SP " >>F && echo "Carriage ReturnQ" | tr Q "\015" >>F && - echo "No problem" >>F + echo "No problem" >>F && + echo >>F ' @@ -160,4 +161,21 @@ test_expect_success 'with cr-at-eol (attribute)' ' ' +test_expect_success 'trailing empty lines (1)' ' + + rm -f .gitattributes && + test_must_fail git diff --check >output && + grep "ends with blank lines." output && + grep "trailing whitespace" output + +' + +test_expect_success 'trailing empty lines (2)' ' + + echo "F -whitespace" >.gitattributes && + git diff --check >output && + ! test -s output + +' + test_done |