summaryrefslogtreecommitdiff
path: root/t/t0090-cache-tree.sh
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2018-09-24 10:30:46 -0700
committerJunio C Hamano <gitster@pobox.com>2018-09-24 10:30:46 -0700
commit48a81ed29795da3e4cc40d4e5ea535878e4f2d9f (patch)
tree0bbe3588f5728fa03ae0ef69dc9111ef91479a83 /t/t0090-cache-tree.sh
parent9715f10e4206c681313d45efa239a594a0027e60 (diff)
parent6c003d6ffb7ebd1599e73921cab5e01d7428001d (diff)
downloadgit-48a81ed29795da3e4cc40d4e5ea535878e4f2d9f.tar.gz
Merge branch 'jk/reopen-tempfile-truncate'
Fix for a long-standing bug that leaves the index file corrupt when it shrinks during a partial commit. * jk/reopen-tempfile-truncate: reopen_tempfile(): truncate opened file
Diffstat (limited to 't/t0090-cache-tree.sh')
-rwxr-xr-xt/t0090-cache-tree.sh18
1 files changed, 18 insertions, 0 deletions
diff --git a/t/t0090-cache-tree.sh b/t/t0090-cache-tree.sh
index 7de40141ca..94fcb4a78e 100755
--- a/t/t0090-cache-tree.sh
+++ b/t/t0090-cache-tree.sh
@@ -161,6 +161,24 @@ test_expect_success PERL 'commit --interactive gives cache-tree on partial commi
test_cache_tree
'
+test_expect_success PERL 'commit -p with shrinking cache-tree' '
+ mkdir -p deep/subdir &&
+ echo content >deep/subdir/file &&
+ git add deep &&
+ git commit -m add &&
+ git rm -r deep &&
+
+ before=$(wc -c <.git/index) &&
+ git commit -m delete -p &&
+ after=$(wc -c <.git/index) &&
+
+ # double check that the index shrank
+ test $before -gt $after &&
+
+ # and that our index was not corrupted
+ git fsck
+'
+
test_expect_success 'commit in child dir has cache-tree' '
mkdir dir &&
>dir/child.t &&