]> git.ipfire.org Git - thirdparty/git.git/commit
add -p: fix counting empty context lines in edited patches
authorPhillip Wood <phillip.wood@dunelm.org.uk>
Mon, 11 Jun 2018 09:46:02 +0000 (10:46 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 11 Jun 2018 16:45:19 +0000 (09:45 -0700)
commitf4d35a6b49621348c73222e7017a434551799308
tree6e837e8aba490dfebfdce61817e1c0b93ed746ed
parent3a8522f41ff45b16e06888d2b164252c9aeeaa03
add -p: fix counting empty context lines in edited patches

recount_edited_hunk() introduced in commit 2b8ea7f3c7 ("add -p:
calculate offset delta for edited patches", 2018-03-05) required all
context lines to start with a space, empty lines are not counted. This
was intended to avoid any recounting problems if the user had
introduced empty lines at the end when editing the patch. However this
introduced a regression into 'git add -p' as it seems it is common for
editors to strip the trailing whitespace from empty context lines when
patches are edited thereby introducing empty lines that should be
counted. 'git apply' knows how to deal with such empty lines and POSIX
states that whether or not there is an space on an empty context line
is implementation defined [1].

Fix the regression by counting lines that consist solely of a newline
as well as lines starting with a space as context lines and add a test
to prevent future regressions.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/diff.html

Reported-by: Mahmoud Al-Qudsi <mqudsi@neosmart.net>
Reported-by: Oliver Joseph Ash <oliverjash@gmail.com>
Reported-by: Jeff Felchner <jfelchner1@gmail.com>
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-add--interactive.perl
t/t3701-add-interactive.sh