threads / discuss / 52311

git-log diff formatting options: some turn on diffs, some don't

Subject: git-log diff formatting options: some turn on diffs, some don't

## tl;dr

3 messages between Nov 22, 2019 and Nov 25, 2019.

replies: 2people: 2as markdown or json

Ed Avis· Nov 22, 2019, 11:42 UTC · lore
If you run git log -c this implies the -p flag.  But git log -r does not imply -p, even though both -r and -c are flags which exist to 'control the formatting of diff output' according to the documentation.
I think that all the flags listed in that section should implicitly turn on -p if it wasn't given.  (I'd also be content if they died with an error when -p wasn't given, but that could break existing users.)  The current behaviour is inconsistent and a bit of a headscratcher when 'git log -r' produces the same output as plain 'git log'.
To learn how we protect privacy, please use this link (https://www.qma.com/gdpr.html) to read our Privacy Notice.
This email and any files transmitted with it are CONFIDENTIAL and are intended solely for the use of the individual(s) or entity to whom they are addressed. Any unauthorised copying, disclosure or distribution of the material within this email is strictly forbidden. Any views or opinions presented within this email are solely those of the author and do not necessarily represent those of QMA Wadhwani (QMAW) unless otherwise specifically stated. An electronic message is not binding on its sender. Any message referring to a binding agreement must be confirmed in writing and duly signed. If you have received this email in error, please notify the sender immediately and delete the original. Telephone, electronic and other communications and conversations with QMAW and/or its associated persons may be recorded and retained.
Please note that your personal information may be stored and processed in any country where we have facilities or in which we engage service providers. If you provide personal information to us by email or otherwise, you consent to the transfer of that information to countries outside of your country of residence and these countries may have different data protection rules than your country.
Junio C Hamano· Nov 23, 2019, 02:15 UTC · re: Ed Avis · lore

Re: git-log diff formatting options: some turn on diffs, some don't

Ed Avis <eda@waniasset.com> writes:
> If you run git log -c this implies the -p flag.  But git log -r
> does not imply -p, even though both -r and -c are flags which
> exist to 'control the formatting of diff output' according to the
> documentation.

`-r` does not control the formatting, actually. It has no effect in the Porcelain "git diff" and "git log"---it is always on and there may not even be a way to turn it off (so, effectively it is a no-op).

The only case I offhand recall that `-r` makes difference is when running `git diff-tree`, whose default output format is the `--raw` format. `git diff-tree A B` and `git diff-tree -r A B` both give its output in the raw format, but if there are differences in the contents of the subdirectory between A and B, the former just shows the subdirectory without showing which paths in that subdirectory differ, while the latter shows the individual paths. For obvious reasons, the '-r' option must *not* imply '-p' for this command, to which the `-r` option has any effect.

I've responded to your email even though I wasn't the entity to whom it was addressed. I promise I won't do so again ;-)

Show 5 quoted lines
> To learn how we protect privacy, please use this link (https://www.qma.com/gdpr.html) to read our Privacy Notice.
>
> This email and any files transmitted with it are CONFIDENTIAL and are intended solely for the use of the individual(s) or entity to whom they are addressed. Any unauthorised copying, disclosure or distribution of the material within this email is strictly forbidden. Any views or opinions presented within this email are solely those of the author and do not necessarily represent those of QMA Wadhwani (QMAW) unless otherwise specifically stated. An electronic message is not binding on its sender. Any message referring to a binding agreement must be confirmed in writing and duly signed. If you have received this email in error, please notify the sender immediately and delete the original. Telephone, electronic and other communications and conversations with QMAW and/or its associated persons may be recorded and retained.
>
> Please note that your personal information may be stored and processed in any country where we have facilities or in which we engage service providers. If you provide personal information to us by email or otherwise, you consent to the transfer of that information to countries outside of your country of residence and these countries may have different data protection rules than your country.
Ed Avis· Nov 25, 2019, 10:46 UTC · re: Junio C Hamano · lore

RE: git-log diff formatting options: some turn on diffs, some don't

Thanks for your reply. If the -r flag has no effect on 'git log' then shouldn't it be omitted from the documentation? https://git-scm.com/docs/git-log has a section on 'Diff Formatting' but if I understand you rightly, a large part of that only applies to other commands.

Further, I would suggest that if the -r flag does get passed to 'git log' then it should give a warning. (Ideally I would say an error, but there might be existing scripts that pass it.)

To learn how we protect privacy, please use this link (https://www.qma.com/gdpr.html) to read our Privacy Notice.
This email and any files transmitted with it are CONFIDENTIAL and are intended solely for the use of the individual(s) or entity to whom they are addressed. Any unauthorised copying, disclosure or distribution of the material within this email is strictly forbidden. Any views or opinions presented within this email are solely those of the author and do not necessarily represent those of QMA Wadhwani (QMAW) unless otherwise specifically stated. An electronic message is not binding on its sender. Any message referring to a binding agreement must be confirmed in writing and duly signed. If you have received this email in error, please notify the sender immediately and delete the original. Telephone, electronic and other communications and conversations with QMAW and/or its associated persons may be recorded and retained.
Please note that your personal information may be stored and processed in any country where we have facilities or in which we engage service providers. If you provide personal information to us by email or otherwise, you consent to the transfer of that information to countries outside of your country of residence and these countries may have different data protection rules than your country.

← back to recent threads