Skip to content

Commit

Permalink
t3701: Editing a split hunk in an "add -p" session
Browse files Browse the repository at this point in the history
Arnaud Lacombe reported that with the recent change to reject overlapping
hunks fed to "git apply", the edit mode of an "add -p" session that lazily
feeds overlapping hunks without coalescing adjacent ones claim that the
patch does not apply.  Expose the problem to be fixed.

Cf. http://thread.gmane.org/gmane.comp.version-control.git/170685/focus=171000

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Apr 29, 2011
1 parent f5ea3f2 commit f3217e2
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions t/t3701-add-interactive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -295,4 +295,40 @@ test_expect_success PERL 'deleting an empty file' '
test_cmp expected diff
'

test_expect_success PERL 'split hunk setup' '
git reset --hard &&
for i in 10 20 30 40 50 60
do
echo $i
done >test &&
git add test &&
test_tick &&
git commit -m test &&
for i in 10 15 20 21 22 23 24 30 40 50 60
do
echo $i
done >test
'

test_expect_failure PERL 'split hunk "add -p (edit)"' '
# Split, say Edit and do nothing. Then:
#
# 1. Broken version results in a patch that does not apply and
# only takes [y/n] (edit again) so the first q is discarded
# and then n attempts to discard the edit. Repeat q enough
# times to get out.
#
# 2. Correct version applies the (not)edited version, and asks
# about the next hunk, against wich we say q and program
# exits.
for a in s e q n q q
do
echo $a
done |
EDITOR=: git add -p &&
git diff >actual &&
! grep "^+15" actual
'

test_done

0 comments on commit f3217e2

Please sign in to comment.