From: Nguyễn Thái Ngọc Duy Date: Tue, 16 Apr 2019 09:33:36 +0000 (+0700) Subject: sha1-name.c: remove the_repo from get_oid_with_context_1() X-Git-Tag: v2.22.0-rc0~25^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=efe461b0811352b539e2cc4721aa5efcf11f0255;p=thirdparty%2Fgit.git sha1-name.c: remove the_repo from get_oid_with_context_1() Signed-off-by: Nguyễn Thái Ngọc Duy Signed-off-by: Junio C Hamano --- diff --git a/sha1-name.c b/sha1-name.c index 6b53ea2eeb..64a50d1291 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -12,6 +12,7 @@ #include "packfile.h" #include "object-store.h" #include "repository.h" +#include "submodule.h" #include "midx.h" #include "commit-reach.h" @@ -1797,7 +1798,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, oc->path = xstrdup(cp); if (!repo->index->cache) - repo_read_index(the_repository); + repo_read_index(repo); pos = index_name_pos(repo->index, cp, namelen); if (pos < 0) pos = -pos - 1; @@ -1842,6 +1843,14 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, new_filename = resolve_relative_path(repo, filename); if (new_filename) filename = new_filename; + /* + * NEEDSWORK: Eventually get_tree_entry*() should + * learn to take struct repository directly and we + * would not need to inject submodule odb to the + * in-core odb. + */ + if (repo != the_repository) + add_to_alternates_memory(repo->objects->odb->path); if (flags & GET_OID_FOLLOW_SYMLINKS) { ret = get_tree_entry_follow_symlinks(&tree_oid, filename, oid, &oc->symlink_path,