shallow: add repository argument to register_shallow
authorStefan Beller <sbeller@google.com>
Thu, 17 May 2018 22:51:44 +0000 (15:51 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 17 May 2018 23:13:10 +0000 (08:13 +0900)
Add a repository argument to allow callers of register_shallow
to be more specific about which repository to handle. This is a small
mechanical change; it doesn't change the implementation to handle
repositories other than the_repository yet.

As with the previous commits, use a macro to catch callers passing a
repository other than the_repository at compile time.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/pack-objects.c
builtin/receive-pack.c
commit.h
fetch-pack.c
shallow.c
upload-pack.c
index d65eb4a94781d7b86b42af05f89df058a2773787..97a5963efb6ce8ea0dfe10023729f6cca3d119a0 100644 (file)
@@ -2875,7 +2875,7 @@ static void get_object_list(int ac, const char **av)
                                struct object_id oid;
                                if (get_oid_hex(line + 10, &oid))
                                        die("not an SHA-1 '%s'", line + 10);
-                               register_shallow(&oid);
+                               register_shallow(the_repository, &oid);
                                use_bitmap_index = 0;
                                continue;
                        }
index 36906fd5e98cc71728dde8b35c78219caef9c82a..c666820b69a15368a5e6204bdb4c2096270dbc45 100644 (file)
@@ -906,7 +906,7 @@ static int update_shallow_ref(struct command *cmd, struct shallow_info *si)
         * not lose these new roots..
         */
        for (i = 0; i < extra.nr; i++)
-               register_shallow(&extra.oid[i]);
+               register_shallow(the_repository, &extra.oid[i]);
 
        si->shallow_ref[cmd->index] = 0;
        oid_array_clear(&extra);
index f88c854e2f6b8b73949e2676ad4e2c81b0fc3402..59346de55129be821955bd7bfa77a125ff7219c6 100644 (file)
--- a/commit.h
+++ b/commit.h
@@ -191,7 +191,8 @@ extern struct commit_list *get_merge_bases_many_dirty(struct commit *one, int n,
 
 struct oid_array;
 struct ref;
-extern int register_shallow(const struct object_id *oid);
+#define register_shallow(r, o) register_shallow_##r(o);
+extern int register_shallow_the_repository(const struct object_id *oid);
 extern int unregister_shallow(const struct object_id *oid);
 extern int for_each_commit_graft(each_commit_graft_fn, void *);
 extern int is_repository_shallow(void);
index a1535b37b9b7a24c99e505854b1ccdd49ddd0aaa..e3e99e449621fc30721410161108f7ede9e1062b 100644 (file)
@@ -428,7 +428,7 @@ static int find_common(struct fetch_pack_args *args,
                        if (skip_prefix(line, "shallow ", &arg)) {
                                if (get_oid_hex(arg, &oid))
                                        die(_("invalid shallow line: %s"), line);
-                               register_shallow(&oid);
+                               register_shallow(the_repository, &oid);
                                continue;
                        }
                        if (skip_prefix(line, "unshallow ", &arg)) {
index 73cb11a91628784e6929f48be68f8de1020e1523..0fadd5330d2fe8d63d186725c561e98ff27d1681 100644 (file)
--- a/shallow.c
+++ b/shallow.c
@@ -29,7 +29,7 @@ void set_alternate_shallow_file_the_repository(const char *path, int override)
        alternate_shallow_file = xstrdup_or_null(path);
 }
 
-int register_shallow(const struct object_id *oid)
+int register_shallow_the_repository(const struct object_id *oid)
 {
        struct commit_graft *graft =
                xmalloc(sizeof(struct commit_graft));
@@ -70,7 +70,7 @@ int is_repository_shallow(void)
                struct object_id oid;
                if (get_oid_hex(buf, &oid))
                        die("bad shallow line: %s", buf);
-               register_shallow(&oid);
+               register_shallow(the_repository, &oid);
        }
        fclose(fp);
        return is_shallow;
index a11c6d192ceaab6771b2bc3e1e9c1c26cdae77c0..4e4ac0f0d9595da6a26f43047b503ae5a4f0cf04 100644 (file)
@@ -663,7 +663,7 @@ static void send_shallow(struct commit_list *result)
                if (!(object->flags & (CLIENT_SHALLOW|NOT_SHALLOW))) {
                        packet_write_fmt(1, "shallow %s",
                                         oid_to_hex(&object->oid));
-                       register_shallow(&object->oid);
+                       register_shallow(the_repository, &object->oid);
                        shallow_nr++;
                }
                result = result->next;
@@ -700,7 +700,7 @@ static void send_unshallow(const struct object_array *shallows)
                        add_object_array(object, NULL, &extra_edge_obj);
                }
                /* make sure commit traversal conforms to client */
-               register_shallow(&object->oid);
+               register_shallow(the_repository, &object->oid);
        }
 }
 
@@ -912,7 +912,8 @@ static void receive_needs(void)
                if (shallows.nr > 0) {
                        int i;
                        for (i = 0; i < shallows.nr; i++)
-                               register_shallow(&shallows.objects[i].item->oid);
+                               register_shallow(the_repository,
+                                                &shallows.objects[i].item->oid);
                }
 
        shallow_nr += shallows.nr;