diff options
author | Junio C Hamano <junkio@cox.net> | 2006-01-15 22:15:37 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-01-15 22:15:37 -0800 |
commit | 181dc776956b4d265891ac70514ed214e4b7564a (patch) | |
tree | 9cec4e555400d7df29d9c110f9ac12abed8ae110 /commit.c | |
parent | 7cb038a692ec0bdc0f442380678e8e87e26d4e68 (diff) | |
download | git-181dc776956b4d265891ac70514ed214e4b7564a.tar.gz git-181dc776956b4d265891ac70514ed214e4b7564a.tar.xz |
describe: omit clearing marks on the last one.
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>
Diffstat (limited to 'commit.c')
-rw-r--r-- | commit.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -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; } } |