Sergey Organov <sorganov@xxxxxxxxx> writes: > What I in fact have in mind is something like: > > --diff-merges[=<parent-number>|c|cc|all] > > to have a single point of definition of the needed format of merges > representation. A command line option that takes _optional_ argument is evil; it hurts teachability (e.g. "why does this option always require "--opt=val" and refuses '--opt val'?"). Making the optional value configurable is even more so (e.g. "teacher said to use '--opt', but it does not behave the way she taught---ah, I have this config"). > Then comes the question of the default. "all" is what'd make it behave > as "-m" behaves now. If it's too late for --diff-merges to have > different default, could the default possibly be a configuration > option rather than yet another command-line option? Introduce --diff-parent=(none|<parent-number>|c|cc|all) that is different from --diff-merges, and -m and --[no-]diff-merges can be defined in terms of that, at which point we can gradually deprecate them if we wanted to, no?