test_expect_success 'checkout main' \
'mkdir default_checkout &&
(cd clone/main &&
- git checkout --to "$base_path/default_checkout/main" "$rev1_hash_main")'
+ git worktree add "$base_path/default_checkout/main" "$rev1_hash_main")'
test_expect_failure 'can see submodule diffs just after checkout' \
'(cd default_checkout/main && git diff --submodule master"^!" | grep "file1 updated")'
test_expect_success 'checkout main and initialize independed clones' \
'mkdir fully_cloned_submodule &&
(cd clone/main &&
- git checkout --to "$base_path/fully_cloned_submodule/main" "$rev1_hash_main") &&
+ git worktree add "$base_path/fully_cloned_submodule/main" "$rev1_hash_main") &&
(cd fully_cloned_submodule/main && git submodule update)'
test_expect_success 'can see submodule diffs after independed cloning' \
'(cd fully_cloned_submodule/main && git diff --submodule master"^!" | grep "file1 updated")'
+test_expect_success 'checkout sub manually' \
+ 'mkdir linked_submodule &&
+ (cd clone/main &&
+ git worktree add "$base_path/linked_submodule/main" "$rev1_hash_main") &&
+ (cd clone/main/sub &&
+ git worktree add "$base_path/linked_submodule/main/sub" "$rev1_hash_sub")'
+
+test_expect_success 'can see submodule diffs after manual checkout of linked submodule' \
+ '(cd linked_submodule/main && git diff --submodule master"^!" | grep "file1 updated")'
+
test_done