diff --whitespace=warn/error: fix blank-at-eof check

The "diff --check" logic used to share the same issue as the one fixed for
"git apply" earlier in this series, in that a patch that adds new blank
lines at end could appear as

    @@ -l,5 +m,7 @@$
    _context$
    _context$
    -deleted$
    +$
    +$
    +$
    _$
    _$

where _ stands for SP and $ shows a end-of-line.  Instead of looking at
each line in the patch in the callback, simply count the blank lines from
the end in two versions, and notice the presence of new ones.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano
2009-09-03 23:39:43 -07:00
parent 5b5061efd8
commit 467babf8d0
2 changed files with 55 additions and 16 deletions

View File

@ -341,6 +341,13 @@ test_expect_success 'checkdiff detects new trailing blank lines (1)' '
git diff --check | grep "new blank line"
'
test_expect_success 'checkdiff detects new trailing blank lines (2)' '
{ echo a; echo b; echo; echo; } >x &&
git add x &&
{ echo a; echo; echo; echo; echo; } >x &&
git diff --check | grep "new blank line"
'
test_expect_success 'checkdiff allows new blank lines' '
git checkout x &&
mv x y &&