|
|
|
@ -312,16 +312,17 @@ int is_descendant_of(struct commit *commit, struct commit_list *with_commit)
@@ -312,16 +312,17 @@ int is_descendant_of(struct commit *commit, struct commit_list *with_commit)
|
|
|
|
|
/* |
|
|
|
|
* Is "commit" an ancestor of one of the "references"? |
|
|
|
|
*/ |
|
|
|
|
int in_merge_bases_many(struct commit *commit, int nr_reference, struct commit **reference) |
|
|
|
|
int repo_in_merge_bases_many(struct repository *r, struct commit *commit, |
|
|
|
|
int nr_reference, struct commit **reference) |
|
|
|
|
{ |
|
|
|
|
struct commit_list *bases; |
|
|
|
|
int ret = 0, i; |
|
|
|
|
uint32_t min_generation = GENERATION_NUMBER_INFINITY; |
|
|
|
|
|
|
|
|
|
if (parse_commit(commit)) |
|
|
|
|
if (repo_parse_commit(r, commit)) |
|
|
|
|
return ret; |
|
|
|
|
for (i = 0; i < nr_reference; i++) { |
|
|
|
|
if (parse_commit(reference[i])) |
|
|
|
|
if (repo_parse_commit(r, reference[i])) |
|
|
|
|
return ret; |
|
|
|
|
if (reference[i]->generation < min_generation) |
|
|
|
|
min_generation = reference[i]->generation; |
|
|
|
@ -330,7 +331,7 @@ int in_merge_bases_many(struct commit *commit, int nr_reference, struct commit *
@@ -330,7 +331,7 @@ int in_merge_bases_many(struct commit *commit, int nr_reference, struct commit *
|
|
|
|
|
if (commit->generation > min_generation) |
|
|
|
|
return ret; |
|
|
|
|
|
|
|
|
|
bases = paint_down_to_common(the_repository, commit, |
|
|
|
|
bases = paint_down_to_common(r, commit, |
|
|
|
|
nr_reference, reference, |
|
|
|
|
commit->generation); |
|
|
|
|
if (commit->object.flags & PARENT2) |
|
|
|
@ -344,9 +345,11 @@ int in_merge_bases_many(struct commit *commit, int nr_reference, struct commit *
@@ -344,9 +345,11 @@ int in_merge_bases_many(struct commit *commit, int nr_reference, struct commit *
|
|
|
|
|
/* |
|
|
|
|
* Is "commit" an ancestor of (i.e. reachable from) the "reference"? |
|
|
|
|
*/ |
|
|
|
|
int in_merge_bases(struct commit *commit, struct commit *reference) |
|
|
|
|
int repo_in_merge_bases(struct repository *r, |
|
|
|
|
struct commit *commit, |
|
|
|
|
struct commit *reference) |
|
|
|
|
{ |
|
|
|
|
return in_merge_bases_many(commit, 1, &reference); |
|
|
|
|
return repo_in_merge_bases_many(r, commit, 1, &reference); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
struct commit_list *reduce_heads(struct commit_list *heads) |
|
|
|
|