Junio C Hamano <gitster@xxxxxxxxx> writes: > Glen Choo <chooglen@xxxxxxxxxx> writes: > >>> Finally, event without "log.diffMerges-m-imply-p", the rest of the >>> series still makes sense, so if the conclusion is to remove it, let's >>> still merge the rest, please! Let me know, and I'll then remove the >>> patch and will change documentation accordingly. >> >> Oops. Sorry, I missed this the first time I read this message. This >> alone should have warranted a response. > > Hmph. I agreed with you that the last step to add the configuration > would not make sense unless we are planning to break users later, It does make sense to me, and to anybody who does want -m to behave the same sane way the rest of similar options behave. I've already got it you don't care, but there are people here who do. > but I have been under the impression that the remainder were OK > clean-ups. Perhaps it is mostly because I read them so long ago and > forgot the details X-<. It's not a cleanup, it's rather adding missed feature that allows to get precise '-m' behavior with --diff-merges. To remind you, there was a discussion back then when --diff-merges= options were introduced, do they need to immediately cause output of diffs for merge commits, or suppress the output till '-p' is specified as well, like '--cc' originally did, and like '-m' still does. The conclusion at that time was that it makes sense to take immediate action as this allows to output diffs for merge commits only, a new opportunity that was not present before. However, by making such decision we lost ability to provide exact behavior of -m using --diff-merges= set of options. This has been pointed out later to me in the list, and felt obliged to finish implementation by providing the feature. --diff-merges=hide is exactly that. > >> I'm not convinced that the series makes sense without >> "log.diffMerges-m-imply-p": >> >> * The main patch is >> >> diff-merges: implement [no-]hide option and log.diffMergesHide config >> >> which gives us a way to redefine "-m" as "--diff-merges=hide >> --diff-merges=on". However, we haven't seen any compelling reasons to >> use --diff-merges=hide [1]. I think --diff-merges should be complete and be able to provide exact "-m" behavior, rendering the latter pure shortcut. Complete orthogonal interfaces are good thing by themselves, and useful applications of them are often found later. That's common knowledge. >> I'm also fairly convinced that if we go >> back in time, "-m" wouldn't have the semantics of 'do nothing unless >> -p is also given', and I don't think we should immortalize a mistake >> by giving it an explicit option. Yep, and I provided a config option that fixes this mistake. What's wrong about it? The complete orthogonal interface finalized by the aforementioned feature allows me to achieve this goal easily. >> >> All the other patches in their current form are dependent on this >> patch going in. >> >> * diff-merges: support list of values for --diff-merges >> >> This only makes sense if we want to accept multiple values, which we >> don't without the main patch. > > Now you mention it (and show example in the previous bullet point), > I have to agree that we would not want this, not because we do not > want to have --diff-merges with multiple values, but because it > introduces an odd-man-out option that is not "last one wins" that is > not used anywhere else in the UI. It's still the last one wins, and I believe I've carefully described it in the documentation of the options. Thanks, -- Sergey Organov