Jonathan Tan <jonathantanmy@xxxxxxxxxx> writes: > 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@xxxxxxxxxx> > --- > Changes from v1: > - Added NEEDSWORK in test, suggested by Jonathan Nieder > - Used printf in test, suggested by Eric Sunshine Nice. The less we use big "plug the machinery to lazily fetch for now" switch, the better, I think. > +setup_triangle () { > + rm -rf big-blob.txt server client promisor-remote && > + > + printf "line %d\n" $(test_seq 1 100) >big-blob.txt I'll tweak this line while queueing with a trailing " &&" (no need to resend only for this).