add `ignore_missing_links` mode to revwalk
[gitweb.git] / revision.c
index cddd6051e307cf5455e41cdd404008d5a1967f84..520b3e7df6cc195e369059b3ad134780580c3e60 100644 (file)
@@ -2866,9 +2866,11 @@ static struct commit *get_revision_1(struct rev_info *revs)
                        if (revs->max_age != -1 &&
                            (commit->date < revs->max_age))
                                continue;
-                       if (add_parents_to_list(revs, commit, &revs->commits, NULL) < 0)
-                               die("Failed to traverse parents of commit %s",
-                                   sha1_to_hex(commit->object.sha1));
+                       if (add_parents_to_list(revs, commit, &revs->commits, NULL) < 0) {
+                               if (!revs->ignore_missing_links)
+                                       die("Failed to traverse parents of commit %s",
+                                               sha1_to_hex(commit->object.sha1));
+                       }
                }
 
                switch (simplify_commit(revs, commit)) {