fetch: remove fetch_if_missing=0
commit6462d5eb9a5b23ab9cff4e3c92ff930600562d8f
authorJonathan Tan <jonathantanmy@google.com>
Tue, 5 Nov 2019 18:56:19 +0000 (5 10:56 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 8 Nov 2019 06:26:44 +0000 (8 15:26 +0900)
tree179a428dc505d6d96fb04b08aaa800496eb35af1
parentc32ca691c282fb34eeb29639340a2aa15f861606
fetch: remove fetch_if_missing=0

In fetch_pack() (and all functions it calls), pass
OBJECT_INFO_SKIP_FETCH_OBJECT whenever we query an object that could be
a tree or blob that we do not want to be lazy-fetched even if it is
absent. Thus, the only lazy-fetches occurring for trees and blobs are
when resolving deltas.

Thus, we can remove fetch_if_missing=0 from builtin/fetch.c. Remove
this, and also add a test ensuring that such objects are not
lazy-fetched. (We might be able to remove fetch_if_missing=0 from other
places too, but I have limited myself to builtin/fetch.c in this commit
because I have not written tests for the other commands yet.)

Note that commits and tags may still be lazy-fetched. I limited myself
to objects that could be trees or blobs here because Git does not
support creating such commit- and tag-excluding clones yet, and even if
such a clone were manually created, Git does not have good support for
fetching a single commit (when fetching a commit, it and all its
ancestors would be sent).

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fetch.c
fetch-pack.c
t/t5616-partial-clone.sh