Re: [PATCH] Add --format that is a synonym to --pretty
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:46:16
Possibly related (same subject, not in this thread)
- 2016-06-15 · [PATCH] Add --format that is a synonym to --pretty · Nanako Shiraishi <hidden>
- 2016-06-15 · Re: [PATCH] Add --format that is a synonym to --pretty · Jeff King <hidden>
Jeff King [off-list ref] writes:
On Tue, Feb 24, 2009 at 01:06:26PM +0900, Nanako Shiraishi wrote:quoted
Some people prefer to call the pretty-print styles "format", and get annoyed to see "git log --format=short" fail. Introduce it as a synonym to --pretty so that both can be used interchangeably without breaking examples in existing web pages or ppeople's expectations.Thinking about this in context of the proposal to support --oneline (et al), I think this part by itself gives confusing behavior. That is, --pretty=oneline can be shortened to --oneline, but --pretty=format:$x cannot be shortened to --format=$x. But that is modified by what happens next:quoted
Having to say --format="format:%h %s" is redundant because none of the predefined pretty-print styles have per-cent sign in it, so this patch also makes it possible to say --pretty="%h %s" (and --format="%h %s").This implies that --format=$x is equivalent to --pretty=format:$x, but the patch actually implements the equivalent of --pretty=tformat:$x. So that raises two concerns: 1. We have to pick one as the "most common" for this shorthand; are we sure tformat is it? (Personally, I think it is, but I think it is a subtle point which we should be sure of). 2. This _almost_ fixes the point I raised above. That is, --format=$x would match its longer --pretty=format:$x counterpart. Except that --format does _tformat_, which I would have expected to get via --tformat under such a proposal.
I think the patch suffers from the same problem Felipe's patch had, by
conflating two issues. Because it had the ":some string with %" shorthand
support in addition to "--format is another way to spell --pretty", and it
did that only to "--format" side, I initially misunderstood Felipe's patch
as primarily addressing "Why do we have to say '--pretty=format:%h %s'
when it is obvious from the context that '%h %s' is a format". It turns
out that he did not like "pretty" and wanted to be able to say "format"
even for the predefined pretty-print styles.
If we split this round into two patches, one that makes --format a synonym
to --pretty, and then another one that allows --{format,pretty}='%h %s',
and *stop there*, then we wouldn't have difficulties.
I do not think --oneline is a bad idea, but I do not think we should
explain it as "You can write anything that you can write after '--pretty='
without 'pretty=' and they mean the same thing". That's where your
concern arises from. You just say "'--pretty=oneline --abbrev-commit' is
so often used, so we have a shorthand for the whole thing: --oneline",
without implying anything about other things such as --short or --tformat.