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;