Michael J Gruber <[email protected]> writes:
>> Can squash ever be true in this function?
>>
>> This function has two callsites: merge_trivial() and
>> finish_automerge().
>>
>> I think merge_trivial() will not be called under "--squash", which
>> turns option_commit off and the only callsite of it is inside an
>> else-if clause that requres option_commit to be true. You can do a
>> similar deduction around the "automerge_was_ok" variable to see if
>> finish_automerge() can be called when "--squash" is given; I suspect
>> the answer may be no.
>
> I'll go without the if, after more testing.
I was sort of expecting that tracing the control flow would give us
the definite answer and that would be much better than any amount of
testing.
In any case, I wasn't even suggesting to remove "if". It might even
be worth doing
if (squash)
BUG("the control must not reach here under --squash");
write_emrge_heads(...);
if we know the control does not have to reach with "--squash" in
today's code, so that future careless refactoring does not break
this fix.