Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2022-07-14 00:54:53 +0300
committerJunio C Hamano <gitster@pobox.com>2022-07-14 00:54:53 +0300
commit6fccbdaa51376494fbcfbe75ad2cd75e0c7cead6 (patch)
tree123b2ad1f275a9a9a8b04ef9b23e5720020b8f8b /builtin
parentee493108e5d5ed3aa32bd2d834fd69552c7b8d47 (diff)
parent817b0f60271086fb53fca2e56d426507b82c7dbd (diff)
Merge branch 'ro/mktree-allow-missing-fix'
"git mktree --missing" lazily fetched objects that are missing from the local object store, which was totally unnecessary for the purpose of creating the tree object(s) from its input. * ro/mktree-allow-missing-fix: mktree: do not check type of remote objects
Diffstat (limited to 'builtin')
-rw-r--r--builtin/mktree.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/builtin/mktree.c b/builtin/mktree.c
index 902edba6d2..06d81400f5 100644
--- a/builtin/mktree.c
+++ b/builtin/mktree.c
@@ -74,6 +74,7 @@ static void mktree_line(char *buf, int nul_term_line, int allow_missing)
unsigned mode;
enum object_type mode_type; /* object type derived from mode */
enum object_type obj_type; /* object type derived from sha */
+ struct object_info oi = OBJECT_INFO_INIT;
char *path, *to_free = NULL;
struct object_id oid;
@@ -116,8 +117,14 @@ static void mktree_line(char *buf, int nul_term_line, int allow_missing)
path, ptr, type_name(mode_type));
}
- /* Check the type of object identified by sha1 */
- obj_type = oid_object_info(the_repository, &oid, NULL);
+ /* Check the type of object identified by oid without fetching objects */
+ oi.typep = &obj_type;
+ if (oid_object_info_extended(the_repository, &oid, &oi,
+ OBJECT_INFO_LOOKUP_REPLACE |
+ OBJECT_INFO_QUICK |
+ OBJECT_INFO_SKIP_FETCH_OBJECT) < 0)
+ obj_type = -1;
+
if (obj_type < 0) {
if (allow_missing) {
; /* no problem - missing objects are presumed to be of the right type */