Skip to content

Commit ae7a0a6

Browse files
authored
Use git_clone__submodule to avoid file checks in workdir
`git_clone` checks for existence of (non-empty) directories that would clash with what is about to be cloned. This is problematic when cloning submodules since they make sense in the context of a parent module, so they should not use the current working dir. Since in `git_submodule_update` we clone the submodule only when it is not yet initialized we do not need to perform directory checks.
1 parent 936b184 commit ae7a0a6

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/libgit2/submodule.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1393,7 +1393,7 @@ int git_submodule_update(git_submodule *sm, int init, git_submodule_update_optio
13931393
*/
13941394
clone_options.checkout_opts.checkout_strategy = GIT_CHECKOUT_NONE;
13951395

1396-
if ((error = git_clone(&sub_repo, submodule_url, sm->path, &clone_options)) < 0 ||
1396+
if ((error = git_clone__submodule(&sub_repo, submodule_url, sm->path, &clone_options)) < 0 ||
13971397
(error = git_repository_set_head_detached(sub_repo, git_submodule_index_id(sm))) < 0 ||
13981398
(error = git_checkout_head(sub_repo, &update_options.checkout_opts)) != 0)
13991399
goto done;

0 commit comments

Comments
 (0)