summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 7cb038a)
raw | patch | inline | side by side (parent: 7cb038a)
author | Junio C Hamano <junkio@cox.net> | |
Mon, 16 Jan 2006 06:15:37 +0000 (22:15 -0800) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Mon, 16 Jan 2006 06:15:37 +0000 (22:15 -0800) |
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>
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>
commit.c | patch | blob | history | |
describe.c | patch | blob | history |
diff --git a/commit.c b/commit.c
index 56efc69f1f4bf1568eaa549bed16f7cc2cd669ba..b8bf35e86081a638137c49e9eabb18c466dec1e5 100644 (file)
--- a/commit.c
+++ b/commit.c
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;
}
}
diff --git a/describe.c b/describe.c
index 5548a16e4d97690e207a6e7cd0699aa8de73f81f..cc95eb0f213cfc95bcfb2ecf2b5d890963fdb578 100644 (file)
--- a/describe.c
+++ b/describe.c
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;
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;
}
}
cmit = lookup_commit_reference(sha1);
if (!cmit)
usage(describe_usage);
- describe(cmit);
+ describe(cmit, i == argc - 1);
}
return 0;
}