Skip to content

Commit a876433

Browse files
committed
Merge branch 'jk/maint-add-p-delete-fix' into maint
* jk/maint-add-p-delete-fix: add-interactive: fix deletion of non-empty files
2 parents aa03131 + 8947fdd commit a876433

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

git-add--interactive.perl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1217,7 +1217,11 @@ sub patch_update_file {
12171217
if (@{$mode->{TEXT}}) {
12181218
unshift @hunk, $mode;
12191219
}
1220-
if (@{$deletion->{TEXT}} && !@hunk) {
1220+
if (@{$deletion->{TEXT}}) {
1221+
foreach my $hunk (@hunk) {
1222+
push @{$deletion->{TEXT}}, @{$hunk->{TEXT}};
1223+
push @{$deletion->{DISPLAY}}, @{$hunk->{DISPLAY}};
1224+
}
12211225
@hunk = ($deletion);
12221226
}
12231227

t/t3701-add-interactive.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,26 @@ test_expect_success 'add first line works' '
228228
test_cmp expected diff
229229
'
230230

231+
cat >expected <<EOF
232+
diff --git a/non-empty b/non-empty
233+
deleted file mode 100644
234+
index d95f3ad..0000000
235+
--- a/non-empty
236+
+++ /dev/null
237+
@@ -1 +0,0 @@
238+
-content
239+
EOF
240+
test_expect_success 'deleting a non-empty file' '
241+
git reset --hard &&
242+
echo content >non-empty &&
243+
git add non-empty &&
244+
git commit -m non-empty &&
245+
rm non-empty &&
246+
echo y | git add -p non-empty &&
247+
git diff --cached >diff &&
248+
test_cmp expected diff
249+
'
250+
231251
cat >expected <<EOF
232252
diff --git a/empty b/empty
233253
deleted file mode 100644

0 commit comments

Comments
 (0)