Junio C Hamano <gitster@xxxxxxxxx> writes: > Sergey Organov <sorganov@xxxxxxxxx> writes: > >> So, do these both effectively resolve to: >> >> git log -m --no-diff-merges --first-parent --patch >> >> where first -m is the one implied by --first-parent, ... > > Eh, why does --first-parent even affect the choice of -m/no-m when > --no-diff-merges is explicitly given? Well, let's try your question on 3 abstract options: "Why does --X even affects the choice of --Y/no-Y when --Z is explicitly given?" And what is the assumed answer? "--X should only affect the choice of --Y/no-Y when no --Z is explicitly given" right? Or, in other terms: "--X implies --Y unless --Z is explicitly given (as opposed to implied?)" Do you see the problem here? I do see this as a problem. Simple "--X implies --Y" should be sufficient to achieve any of required behaviors. No need for such complications. I just try to figure if some more or less strict model is hidden behind all this, and it seems there is none. Thanks, -- Sergey