shallow: add repository argument to register_shallow

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>
This commit is contained in:
Stefan Beller 2018-05-17 15:51:44 -07:00 коммит произвёл Junio C Hamano
Родитель 6a2df51c84
Коммит 19143f139d
6 изменённых файлов: 11 добавлений и 9 удалений

Просмотреть файл

@ -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;
}

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);

Просмотреть файл

@ -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)) {

Просмотреть файл

@ -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;

Просмотреть файл

@ -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;