Subject: Re: [PATCH 00/26] git-log: implement new --diff-merge options

From: Sergey Organov <[email-masked]>
Date: Tue, 08 Dec 2020 23:07:36 +0300

Sergey Organov <[email-masked]> writes:

[...]

> The series also cleanup logic of handling of diff merges options and
> fix an issue found in the original implementation where logically
> mutually exclusive options -m/-c/--cc failed to actually override each
> other.

Working further on this, I've noticed very irregular interactions
between -m/-c/--cc and --oneline:

1. --oneline disables -m output for 'git log', and leaves -m output enabled
for 'git show':

$ /usr/bin/git show -n1 -m --oneline 2e673356aef | wc -l
80
$ /usr/bin/git log -n1 -m --oneline 2e673356aef | wc -l
1

2. For 'git log', --oneline disables -m output, and leaves -c/--cc output
enabled:

$ /usr/bin/git log -n1 -m --oneline 2e673356aef | wc -l
1
$ /usr/bin/git log -n1 -c --oneline 2e673356aef | wc -l
16
$ /usr/bin/git log -n1 --cc --oneline 2e673356aef | wc -l
16

The question is: what's the right interaction between --oneline and
-m/-c/--cc?

I tend to think they should be independent, so that --oneline doesn't
affect diff output, and then the only offender is -m.

What do you think?

$ /usr/bin/git --version
git version 2.25.1

Thanks,
-- Sergey Organov