Merge branch 'jk/maint-add-p-delete-fix' into maint
authorJunio C Hamano <gitster@pobox.com>
Wed, 9 Dec 2009 06:37:50 +0000 (22:37 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 9 Dec 2009 06:37:50 +0000 (22:37 -0800)
* jk/maint-add-p-delete-fix:
add-interactive: fix deletion of non-empty files

git-add--interactive.perl
t/t3701-add-interactive.sh
index 8ce1ec92c2b04e1271b3ee1a41a2ac60d2f8aad4..75b71967a7c2f861c8e75e17c17e5cdce824e2e3 100755 (executable)
@@ -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);
        }
 
index d86bc81abfd954194c245e7e180a23f2b9b7c840..b6eba6a83904a00724b7b550a9bc3b1b35825bee 100755 (executable)
@@ -228,6 +228,26 @@ test_expect_success 'add first line works' '
        test_cmp expected diff
 '
 
+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