diff options
-rwxr-xr-x | git-add--interactive.perl | 6 | ||||
-rwxr-xr-x | t/t3701-add-interactive.sh | 20 |
2 files changed, 25 insertions, 1 deletions
diff --git a/git-add--interactive.perl b/git-add--interactive.perl index 35f4ef11de..02e97b90f1 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 aa5909b14c..0926b91d57 100755 --- a/t/t3701-add-interactive.sh +++ b/t/t3701-add-interactive.sh @@ -215,6 +215,26 @@ test_expect_success 'add first line works' ' ' cat >expected <<EOF +diff --git a/non-empty b/non-empty +deleted file mode 100644 +index d95f3ad..0000000 +--- a/non-empty ++++ /dev/null +@@ -1 +0,0 @@ +-content +EOF +test_expect_success 'deleting a non-empty file' ' + git reset --hard && + echo content >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 <<EOF diff --git a/empty b/empty deleted file mode 100644 index e69de29..0000000 |