diff --git a/git-add--interactive.perl b/git-add--interactive.perl index 8ce1ec92c2..75b71967a7 100755 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl @@ -1217,7 +1217,11 @@ sub patch_update_file { if (@{$mode->{TEXT}}) { unshift @hunk, $mode; } - if (@{$deletion->{TEXT}} && !@hunk) { + if (@{$deletion->{TEXT}}) { + foreach my $hunk (@hunk) { + push @{$deletion->{TEXT}}, @{$hunk->{TEXT}}; + push @{$deletion->{DISPLAY}}, @{$hunk->{DISPLAY}}; + } @hunk = ($deletion); } diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh index d86bc81abf..b6eba6a839 100755 --- a/t/t3701-add-interactive.sh +++ b/t/t3701-add-interactive.sh @@ -228,6 +228,26 @@ test_expect_success 'add first line works' ' test_cmp expected diff ' +cat >expected <non-empty && + git add non-empty && + git commit -m non-empty && + rm non-empty && + echo y | git add -p non-empty && + git diff --cached >diff && + test_cmp expected diff +' + cat >expected <