]> git.ipfire.org Git - thirdparty/git.git/commitdiff
promisor-remote: accept 0 as oid_nr in function
authorJonathan Tan <jonathantanmy@google.com>
Thu, 2 Apr 2020 19:19:16 +0000 (12:19 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 2 Apr 2020 19:42:32 +0000 (12:42 -0700)
There are 3 callers to promisor_remote_get_direct() that first check if
the number of objects to be fetched is equal to 0. Fold that check into
promisor_remote_get_direct(), and in doing so, be explicit as to what
promisor_remote_get_direct() does if oid_nr is 0 (it returns 0, success,
immediately).

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/index-pack.c
diff.c
promisor-remote.c
promisor-remote.h
unpack-trees.c

index d967d188a307fe8763b5fdff08b570999e2a853d..f176dd28c870d5e417b373f2bb0d39b4fa1a0c29 100644 (file)
@@ -1368,9 +1368,8 @@ static void fix_unresolved_deltas(struct hashfile *f)
                                continue;
                        oid_array_append(&to_fetch, &d->oid);
                }
-               if (to_fetch.nr)
-                       promisor_remote_get_direct(the_repository,
-                                                  to_fetch.oid, to_fetch.nr);
+               promisor_remote_get_direct(the_repository,
+                                          to_fetch.oid, to_fetch.nr);
                oid_array_clear(&to_fetch);
        }
 
diff --git a/diff.c b/diff.c
index f2cfbf2214a29fc9ddf0e356230df7625d3d1139..d0f80324566c5cfe07da840055030a087fe0fb76 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -6517,12 +6517,11 @@ void diffcore_std(struct diff_options *options)
                        add_if_missing(options->repo, &to_fetch, p->one);
                        add_if_missing(options->repo, &to_fetch, p->two);
                }
-               if (to_fetch.nr)
-                       /*
-                        * NEEDSWORK: Consider deduplicating the OIDs sent.
-                        */
-                       promisor_remote_get_direct(options->repo,
-                                                  to_fetch.oid, to_fetch.nr);
+               /*
+                * NEEDSWORK: Consider deduplicating the OIDs sent.
+                */
+               promisor_remote_get_direct(options->repo,
+                                          to_fetch.oid, to_fetch.nr);
                oid_array_clear(&to_fetch);
        }
 
index 9f338c945faf997a11d2a55065ddbc14d8be6cdc..2155dfe657e87cf6b9d3832a4efe86b6f9f7fa23 100644 (file)
@@ -241,6 +241,9 @@ int promisor_remote_get_direct(struct repository *repo,
        int to_free = 0;
        int res = -1;
 
+       if (oid_nr == 0)
+               return 0;
+
        promisor_remote_init();
 
        for (r = promisors; r; r = r->next) {
index 737bac3a330e22fe11058d5667cdb3f199c0484a..6343c47d1830f947aae456ed48e305faef26b6c0 100644 (file)
@@ -20,6 +20,14 @@ struct promisor_remote {
 void promisor_remote_reinit(void);
 struct promisor_remote *promisor_remote_find(const char *remote_name);
 int has_promisor_remote(void);
+
+/*
+ * Fetches all requested objects from all promisor remotes, trying them one at
+ * a time until all objects are fetched. Returns 0 upon success, and non-zero
+ * otherwise.
+ *
+ * If oid_nr is 0, this function returns 0 (success) immediately.
+ */
 int promisor_remote_get_direct(struct repository *repo,
                               const struct object_id *oids,
                               int oid_nr);
index 1ecdab330408a1cca7f703b6f2dc8d9b11ae0261..01c914912102e115503ac1670e594ad8f805aab9 100644 (file)
@@ -422,9 +422,8 @@ static int check_updates(struct unpack_trees_options *o)
                                continue;
                        oid_array_append(&to_fetch, &ce->oid);
                }
-               if (to_fetch.nr)
-                       promisor_remote_get_direct(the_repository,
-                                                  to_fetch.oid, to_fetch.nr);
+               promisor_remote_get_direct(the_repository,
+                                          to_fetch.oid, to_fetch.nr);
                oid_array_clear(&to_fetch);
        }
        for (i = 0; i < index->cache_nr; i++) {