mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-05 17:12:51 +00:00
Merge pull request #4161 from pks-t/pks/submodule-index-fix
submodule: catch when submodule is not staged on update
This commit is contained in:
commit
6dfb983cfc
@ -1212,6 +1212,8 @@ int git_submodule_update(git_submodule *sm, int init, git_submodule_update_optio
|
|||||||
(error = git_checkout_head(sub_repo, &update_options.checkout_opts)) != 0)
|
(error = git_checkout_head(sub_repo, &update_options.checkout_opts)) != 0)
|
||||||
goto done;
|
goto done;
|
||||||
} else {
|
} else {
|
||||||
|
const git_oid *oid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Work dir is initialized - look up the commit in the parent repository's index,
|
* Work dir is initialized - look up the commit in the parent repository's index,
|
||||||
* update the workdir contents of the subrepository, and set the subrepository's
|
* update the workdir contents of the subrepository, and set the subrepository's
|
||||||
@ -1220,8 +1222,14 @@ int git_submodule_update(git_submodule *sm, int init, git_submodule_update_optio
|
|||||||
if ((error = git_submodule_open(&sub_repo, sm)) < 0)
|
if ((error = git_submodule_open(&sub_repo, sm)) < 0)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
|
if ((oid = git_submodule_index_id(sm)) == NULL) {
|
||||||
|
giterr_set(GITERR_SUBMODULE, "could not get ID of submodule in index");
|
||||||
|
error = -1;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
/* Look up the target commit in the submodule. */
|
/* Look up the target commit in the submodule. */
|
||||||
if ((error = git_object_lookup(&target_commit, sub_repo, git_submodule_index_id(sm), GIT_OBJ_COMMIT)) < 0) {
|
if ((error = git_object_lookup(&target_commit, sub_repo, oid, GIT_OBJ_COMMIT)) < 0) {
|
||||||
/* If it isn't found then fetch and try again. */
|
/* If it isn't found then fetch and try again. */
|
||||||
if (error != GIT_ENOTFOUND || !update_options.allow_fetch ||
|
if (error != GIT_ENOTFOUND || !update_options.allow_fetch ||
|
||||||
(error = lookup_default_remote(&remote, sub_repo)) < 0 ||
|
(error = lookup_default_remote(&remote, sub_repo)) < 0 ||
|
||||||
|
Loading…
Reference in New Issue
Block a user