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).

Signed-off-by: Jonathan Tan <jonathanta...@google.com>
---
Thanks, Duy, for noticing this.
---
 diff.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

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

Reply via email to