Don't add parents to the commit list if we have already
seen them.
Otherwise any merges will make the parent list explode.
diff --git a/commit.c b/commit.c
index 911f643..0243e77 100644
--- a/commit.c
+++ b/commit.c
@@ -124,8 +124,11 @@
free(old);
while (parents) {
- parse_commit(parents->item);
- insert_by_date(list, parents->item);
+ struct commit *commit = parents->item;
+ if (!commit->object.parsed) {
+ parse_commit(commit);
+ insert_by_date(list, commit);
+ }
parents = parents->next;
}
return ret;