unpack-trees: let read-tree -u remove index entries outside sparse area
[gitweb.git] / t / t1011-read-tree-sparse-checkout.sh
index 9189de8461825bec601760415fa6e5a9c8fc14c1..85e08374dd7646365c10afaa4d2c5f092c33616a 100755 (executable)
@@ -146,7 +146,7 @@ test_expect_success 'read-tree adds to worktree, absent case' '
        test ! -f sub/added
 '
 
-test_expect_success 'read-tree adds to worktree, dirty case' '
+test_expect_failure 'read-tree adds to worktree, dirty case' '
        echo init.t >.git/info/sparse-checkout &&
        git checkout -f removed &&
        mkdir sub &&
@@ -155,4 +155,25 @@ test_expect_success 'read-tree adds to worktree, dirty case' '
        grep -q dirty sub/added
 '
 
+test_expect_success 'index removal and worktree narrowing at the same time' '
+       >empty &&
+       echo init.t >.git/info/sparse-checkout &&
+       echo sub/added >>.git/info/sparse-checkout &&
+       git checkout -f top &&
+       echo init.t >.git/info/sparse-checkout &&
+       git checkout removed &&
+       git ls-files sub/added >result &&
+       test ! -f sub/added &&
+       test_cmp empty result
+'
+
+test_expect_success 'read-tree --reset removes outside worktree' '
+       >empty &&
+       echo init.t >.git/info/sparse-checkout &&
+       git checkout -f top &&
+       git reset --hard removed &&
+       git ls-files sub/added >result &&
+       test_cmp empty result
+'
+
 test_done