Hi Jonathan, On Fri, 5 Apr 2019, Jonathan Tan wrote: > This is a fixup on the tip of jt/batch-fetch-blobs-in-diff (571debe1d9). > > I don't know if Junio has already merged this branch to next (he marked > this as "Will merge to 'next'" in the "What's Cooking" email, but when I > fetched, it hasn't been merged yet). If he has, we can use this commit > message: > > diff: propagate options->repo to add_if_missing > > Avoid a usage of the_repository by propagating the configured repository > to add_if_missing(). Also, prefetch only if the repository being diffed > is the_repository (because we do not support lazy fetching for any other > repository anyway). True, and the introduction of `has_promisor_remotes()` should probably help that, by introducing a parameter of type `struct repository *r`. > Signed-off-by: Jonathan Tan <jonathantanmy@xxxxxxxxxx> The patch and the commit message look good! Thanks, Dscho > diff --git a/diff.c b/diff.c > index 1eccefb4ef..811afbdfb1 100644 > --- a/diff.c > +++ b/diff.c > @@ -6367,18 +6367,19 @@ void diffcore_fix_diff_index(void) > QSORT(q->queue, q->nr, diffnamecmp); > } > > -static void add_if_missing(struct oid_array *to_fetch, > +static void add_if_missing(struct oid_array *to_fetch, struct repository *r, > const struct diff_filespec *filespec) > { > if (filespec && filespec->oid_valid && > - oid_object_info_extended(the_repository, &filespec->oid, NULL, > + oid_object_info_extended(r, &filespec->oid, NULL, > OBJECT_INFO_FOR_PREFETCH)) > oid_array_append(to_fetch, &filespec->oid); > } > > void diffcore_std(struct diff_options *options) > { > - if (repository_format_partial_clone) { > + if (options->repo == the_repository && > + repository_format_partial_clone) { > /* > * Prefetch the diff pairs that are about to be flushed. > */ > @@ -6388,8 +6389,8 @@ void diffcore_std(struct diff_options *options) > > for (i = 0; i < q->nr; i++) { > struct diff_filepair *p = q->queue[i]; > - add_if_missing(&to_fetch, p->one); > - add_if_missing(&to_fetch, p->two); > + add_if_missing(&to_fetch, options->repo, p->one); > + add_if_missing(&to_fetch, options->repo, p->two); > } > if (to_fetch.nr) > /* > -- > 2.21.0.392.gf8f6787159e-goog > >