Browse Source

Merge branch 'sv/first-parent'

* sv/first-parent:
  revision.c: really honor --first-parent
  Simplify and fix --first-parent implementation
maint
Junio C Hamano 17 years ago
parent
commit
f0abea652b
  1. 14
      revision.c

14
revision.c

@ -416,7 +416,6 @@ static int add_parents_to_list(struct rev_info *revs, struct commit *commit, str
{ {
struct commit_list *parent = commit->parents; struct commit_list *parent = commit->parents;
unsigned left_flag; unsigned left_flag;
int add, rest;


if (commit->object.flags & ADDED) if (commit->object.flags & ADDED)
return 0; return 0;
@ -463,19 +462,18 @@ static int add_parents_to_list(struct rev_info *revs, struct commit *commit, str


left_flag = (commit->object.flags & SYMMETRIC_LEFT); left_flag = (commit->object.flags & SYMMETRIC_LEFT);


rest = !revs->first_parent_only; for (parent = commit->parents; parent; parent = parent->next) {
for (parent = commit->parents, add = 1; parent; add = rest) {
struct commit *p = parent->item; struct commit *p = parent->item;


parent = parent->next;
if (parse_commit(p) < 0) if (parse_commit(p) < 0)
return -1; return -1;
p->object.flags |= left_flag; p->object.flags |= left_flag;
if (p->object.flags & SEEN) if (!(p->object.flags & SEEN)) {
continue; p->object.flags |= SEEN;
p->object.flags |= SEEN;
if (add)
insert_by_date(p, list); insert_by_date(p, list);
}
if(revs->first_parent_only)
break;
} }
return 0; return 0;
} }

Loading…
Cancel
Save