Merge branch 'jc/merge-bases'

The get_merge_bases*() API was easy to misuse by careless
copy&paste coders, leaving object flags tainted in the commits that
needed to be traversed.

* jc/merge-bases:
  get_merge_bases(): always clean-up object flags
  bisect: clean flags after checking merge bases
This commit is contained in:
Junio C Hamano
2015-01-07 12:55:05 -08:00
11 changed files with 38 additions and 22 deletions

View File

@ -867,7 +867,7 @@ struct commit_list *get_octopus_merge_bases(struct commit_list *in)
for (j = ret; j; j = j->next) {
struct commit_list *bases;
bases = get_merge_bases(i->item, j->item, 1);
bases = get_merge_bases(i->item, j->item);
if (!new)
new = bases;
else
@ -936,10 +936,10 @@ static int remove_redundant(struct commit **array, int cnt)
return filled;
}
struct commit_list *get_merge_bases_many(struct commit *one,
int n,
struct commit **twos,
int cleanup)
static struct commit_list *get_merge_bases_many_0(struct commit *one,
int n,
struct commit **twos,
int cleanup)
{
struct commit_list *list;
struct commit **rslt;
@ -977,10 +977,23 @@ struct commit_list *get_merge_bases_many(struct commit *one,
return result;
}
struct commit_list *get_merge_bases(struct commit *one, struct commit *two,
int cleanup)
struct commit_list *get_merge_bases_many(struct commit *one,
int n,
struct commit **twos)
{
return get_merge_bases_many(one, 1, &two, cleanup);
return get_merge_bases_many_0(one, n, twos, 1);
}
struct commit_list *get_merge_bases_many_dirty(struct commit *one,
int n,
struct commit **twos)
{
return get_merge_bases_many_0(one, n, twos, 0);
}
struct commit_list *get_merge_bases(struct commit *one, struct commit *two)
{
return get_merge_bases_many_0(one, 1, &two, 1);
}
/*