checkout: add --ignore-skip-worktree-bits in sparse checkout mode
"git checkout -- <paths>" is usually used to restore all modified files in <paths>. In sparse checkout mode, this command is overloaded with another meaning: to add back all files in <paths> that are excluded by sparse patterns. As the former makes more sense for day-to-day use. Switch it to the default and the latter enabled with --ignore-skip-worktree-bits. While at there, add info/sparse-checkout to gitrepository-layout.txt Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
85e7e81ccf
commit
08d595dc1c
@ -250,4 +250,28 @@ EOF
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success 'checkout without --ignore-skip-worktree-bits' '
|
||||
echo "*" >.git/info/sparse-checkout &&
|
||||
git checkout -f top &&
|
||||
test_path_is_file init.t &&
|
||||
echo sub >.git/info/sparse-checkout &&
|
||||
git checkout &&
|
||||
echo modified >> sub/added &&
|
||||
git checkout . &&
|
||||
test_path_is_missing init.t &&
|
||||
git diff --exit-code HEAD
|
||||
'
|
||||
|
||||
test_expect_success 'checkout with --ignore-skip-worktree-bits' '
|
||||
echo "*" >.git/info/sparse-checkout &&
|
||||
git checkout -f top &&
|
||||
test_path_is_file init.t &&
|
||||
echo sub >.git/info/sparse-checkout &&
|
||||
git checkout &&
|
||||
echo modified >> sub/added &&
|
||||
git checkout --ignore-skip-worktree-bits . &&
|
||||
test_path_is_file init.t &&
|
||||
git diff --exit-code HEAD
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Reference in New Issue
Block a user