commit-reach.c: allow paint_down_to_common to handle any repo

As the function is file local and not widely used, migrate it all at once.

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-11-13 16:12:51 -08:00 committed by Junio C Hamano
parent 9e5252abd1
commit c383830a91

View File

@ -30,7 +30,8 @@ static int queue_has_nonstale(struct prio_queue *queue)
} }
/* all input commits in one and twos[] must have been parsed! */ /* all input commits in one and twos[] must have been parsed! */
static struct commit_list *paint_down_to_common(struct commit *one, int n, static struct commit_list *paint_down_to_common(struct repository *r,
struct commit *one, int n,
struct commit **twos, struct commit **twos,
int min_generation) int min_generation)
{ {
@ -83,7 +84,7 @@ static struct commit_list *paint_down_to_common(struct commit *one, int n,
parents = parents->next; parents = parents->next;
if ((p->object.flags & flags) == flags) if ((p->object.flags & flags) == flags)
continue; continue;
if (parse_commit(p)) if (repo_parse_commit(r, p))
return NULL; return NULL;
p->object.flags |= flags; p->object.flags |= flags;
prio_queue_put(&queue, p); prio_queue_put(&queue, p);
@ -116,7 +117,7 @@ static struct commit_list *merge_bases_many(struct commit *one, int n, struct co
return NULL; return NULL;
} }
list = paint_down_to_common(one, n, twos, 0); list = paint_down_to_common(the_repository, one, n, twos, 0);
while (list) { while (list) {
struct commit *commit = pop_commit(&list); struct commit *commit = pop_commit(&list);
@ -187,8 +188,8 @@ static int remove_redundant(struct commit **array, int cnt)
if (array[j]->generation < min_generation) if (array[j]->generation < min_generation)
min_generation = array[j]->generation; min_generation = array[j]->generation;
} }
common = paint_down_to_common(array[i], filled, work, common = paint_down_to_common(the_repository, array[i], filled,
min_generation); work, min_generation);
if (array[i]->object.flags & PARENT2) if (array[i]->object.flags & PARENT2)
redundant[i] = 1; redundant[i] = 1;
for (j = 0; j < filled; j++) for (j = 0; j < filled; j++)
@ -322,7 +323,9 @@ int in_merge_bases_many(struct commit *commit, int nr_reference, struct commit *
if (commit->generation > min_generation) if (commit->generation > min_generation)
return ret; return ret;
bases = paint_down_to_common(commit, nr_reference, reference, commit->generation); bases = paint_down_to_common(the_repository, commit,
nr_reference, reference,
commit->generation);
if (commit->object.flags & PARENT2) if (commit->object.flags & PARENT2)
ret = 1; ret = 1;
clear_commit_marks(commit, all_flags); clear_commit_marks(commit, all_flags);