Skip to content

Commit

Permalink
describe: omit clearing marks on the last one.
Browse files Browse the repository at this point in the history
When describing more than one, we need to clear the commit marks
before handling the next one, but most of the time we are
running it for only one commit, and in such a case this clearing
phase is totally unnecessary.

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Jan 16, 2006
1 parent 7cb038a commit 181dc77
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
6 changes: 4 additions & 2 deletions commit.c
Original file line number Diff line number Diff line change
Expand Up @@ -359,8 +359,10 @@ void clear_commit_marks(struct commit *commit, unsigned int mark)
parents = commit->parents;
commit->object.flags &= ~mark;
while (parents) {
if (parents->item && parents->item->object.parsed)
clear_commit_marks(parents->item, mark);
struct commit *parent = parents->item;
if (parent && parent->object.parsed &&
(parent->object.flags & mark))
clear_commit_marks(parent, mark);
parents = parents->next;
}
}
Expand Down
7 changes: 4 additions & 3 deletions describe.c
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ static int compare_names(const void *_a, const void *_b)
return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
}

static void describe(struct commit *cmit)
static void describe(struct commit *cmit, int last_one)
{
struct commit_list *list;
static int initialized = 0;
Expand All @@ -124,7 +124,8 @@ static void describe(struct commit *cmit)
if (n) {
printf("%s-g%s\n", n->path,
find_unique_abbrev(cmit->object.sha1, abbrev));
clear_commit_marks(cmit, SEEN);
if (!last_one)
clear_commit_marks(cmit, SEEN);
return;
}
}
Expand Down Expand Up @@ -159,7 +160,7 @@ int main(int argc, char **argv)
cmit = lookup_commit_reference(sha1);
if (!cmit)
usage(describe_usage);
describe(cmit);
describe(cmit, i == argc - 1);
}
return 0;
}

0 comments on commit 181dc77

Please sign in to comment.