summaryrefslogtreecommitdiff
path: root/diff.c
diff options
context:
space:
mode:
authorJonathan Tan <jonathantanmy@google.com>2019-08-20 20:53:20 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-08-20 22:04:26 (GMT)
commita63694f52355b412b65515961401cd2359fed544 (patch)
tree1d944a7cff1b50468c94cfe03232f85cd7a0a079 /diff.c
parent75b2f01a0f642b39b0f29b6218515df9b5eb798e (diff)
downloadgit-a63694f52355b412b65515961401cd2359fed544.zip
git-a63694f52355b412b65515961401cd2359fed544.tar.gz
git-a63694f52355b412b65515961401cd2359fed544.tar.bz2
diff: skip GITLINK when lazy fetching missing objs
In 7fbbcb21b1 ("diff: batch fetching of missing blobs", 2019-04-08), diff was taught to batch the fetching of missing objects when operating on a partial clone, but was not taught to refrain from fetching GITLINKs. Teach diff to check if an object is a GITLINK before including it in the set to be fetched. (As stated in the commit message of that commit, unpack-trees was also taught a similar thing prior, but unpack-trees correctly checks for GITLINK before including objects in the set to be fetched.) Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'diff.c')
-rw-r--r--diff.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/diff.c b/diff.c
index 1ccd96b..9a2aa07 100644
--- a/diff.c
+++ b/diff.c
@@ -6487,6 +6487,7 @@ static void add_if_missing(struct repository *r,
const struct diff_filespec *filespec)
{
if (filespec && filespec->oid_valid &&
+ !S_ISGITLINK(filespec->mode) &&
oid_object_info_extended(r, &filespec->oid, NULL,
OBJECT_INFO_FOR_PREFETCH))
oid_array_append(to_fetch, &filespec->oid);