merge_base(): move traversal into a separate function.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano
2007-01-08 23:26:19 -08:00
parent 03840fc32d
commit 40e0e66bb0

View File

@@ -1034,25 +1034,10 @@ static struct commit *interesting(struct commit_list *list)
return NULL;
}
static struct commit_list *merge_bases(struct commit *one, struct commit *two)
static struct commit_list *base_traverse(struct commit_list *list)
{
struct commit_list *list = NULL;
struct commit_list *result = NULL;
if (one == two)
/* We do not mark this even with RESULT so we do not
* have to clean it up.
*/
return commit_list_insert(one, &result);
parse_commit(one);
parse_commit(two);
one->object.flags |= PARENT1;
two->object.flags |= PARENT2;
insert_by_date(one, &list);
insert_by_date(two, &list);
while (interesting(list)) {
struct commit *commit;
struct commit_list *parents;
@@ -1098,6 +1083,27 @@ static struct commit_list *merge_bases(struct commit *one, struct commit *two)
return result;
}
static struct commit_list *merge_bases(struct commit *one, struct commit *two)
{
struct commit_list *list = NULL;
if (one == two)
/* We do not mark this even with RESULT so we do not
* have to clean it up.
*/
return commit_list_insert(one, &list);
parse_commit(one);
parse_commit(two);
one->object.flags |= PARENT1;
two->object.flags |= PARENT2;
insert_by_date(one, &list);
insert_by_date(two, &list);
return base_traverse(list);
}
struct commit_list *get_merge_bases(struct commit *one,
struct commit *two,
int cleanup)