Given that real trees in the wild include parents with duplicate parents, I have relaxed over-zealous error checking in epoch.c and dealt with the problem a different way - duplicate parents are now silently ignored.
Signed-off-by: Jon Seymour <jon.seymour@gmail.com> ---
epoch.c | 16 ++++++---------- 1 files changed, 6 insertions(+), 10 deletions(-)
Show changes to epoch.c +6 −10
diff --git a/epoch.c b/epoch.c --- a/epoch.c +++ b/epoch.c @@ -224,17 +224,13 @@ static int find_base_for_list(struct com for (; list; list = list->next) { struct commit *item = list->item; - if (item->object.util) { - die("%s:%d:%s: logic error: this should not have happened - commit %s", - __FILE__, __LINE__, __FUNCTION__, - sha1_to_hex(item->object.sha1)); - } - - new_mass_counter(list->item, get_one()); - add(&injected, &injected, get_one()); + if (!item->object.util) { + new_mass_counter(list->item, get_one()); + add(&injected, &injected, get_one()); - commit_list_insert(list->item, &cleaner); - commit_list_insert(list->item, &pending); + commit_list_insert(list->item, &cleaner); + commit_list_insert(list->item, &pending); + } } while (!*boundary && pending && !ret) { ------------