]> git.ipfire.org Git - thirdparty/git.git/commitdiff
sha1-name.c: remove the_repo from get_oid_with_context_1()
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Tue, 16 Apr 2019 09:33:36 +0000 (16:33 +0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 16 Apr 2019 09:56:53 +0000 (18:56 +0900)
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sha1-name.c

index 6b53ea2eeb7cd62790aaba8c72afa4afe00e23c6..64a50d12919bc4cd27a474fa90899d963e20a830 100644 (file)
@@ -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,