Hi Junio, On Tue, 23 Jan 2018, Junio C Hamano wrote: > 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(). This has occupied both of you for way too long. It is *not interesting*. What *is* interesting is for example the discussion about the "cousin commits". And maybe both of you gentle persons can spend your brain cycles splendidly by trying to come up with a better term. Or by trying to beat out obvious or not-so-obvious bugs in the code. Seriously, I am not interested in a discussion about BUG() vs die() as long as there may be real bugs hiding. Ciao, Dscho