Eric Sunshine <sunshine@xxxxxxxxxxxxxx> writes: >> + is_octopus = to_merge && to_merge->next; >> + >> + if (is_octopus) >> + BUG("Octopus merges not yet supported"); > > Is this a situation which the end-user can trigger by specifying a > merge with more than two parents? If so, shouldn't this be just a > normal error message rather than a (developer) bug message? Or, am I > misunderstanding? BUG() is "we wrote code carefully so that this should not trigger; we do not _expect_ the code to reach here". This one is expected to trigger, and I agree with you that it should be die(), if the series is meant to be released to the general public in the current form (i.e. until the limitation is lifted so that it can handle an octopus). If the callers are made more careful to check if there is an octopus involved and reject the request early, then seeing an octopus in this location in a loop will become a BUG().