Re: [RFC/PATCH] revision.c: add --format option for 'git log'
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2016-06-15 22:46:15
On Sun, 22 Feb 2009, Felipe Contreras wrote:
'git log --pretty=foo' is very unintuitive, no one would ever find that option by intuition. Are there different kinds of pretties? Is the default behavior --ugly?
Historically, the default behaviour _was_ indeed --ugly. There was no native "git log" command per se, it was literally a script that did something like git-rev-list <rev-opts> | git-diff-tree --stdin --pretty | $(PAGER) and the "--pretty" option was to tell git to give human-readable output from git-diff-tree rather than the harsh raw stuff. So yes, the default for git used to be "low-level plumbing commands for scripting", with some options to turn them pretty for the fleshies. Then we started having more options, so "--pretty" became "--pretty=xyz". But I do realize that without the historical background, none of this makes sense. And quite frankly, I do hate "--pretty=xyz" myself. I find myself wishing I could just write git log --oneline instead of "--pretty=oneline", and I wish "shortlog" was a pretty format instead of a command of its own. So at least personally, I would not object AT ALL to - leave the "--pretty=xyz" parsing for historical reasons - support "--format=xyz" too, because it does make sense (and it's unambiguous: a format without a '%' sign in it makes no sense, so there is no reason to have "--format=format:%s" - if we see an unrecognized "--<option>", and the <option> is a format name, just assume the user was lazy and couldn't be bothered to write out "format=" and then for extra bonus points, make "shortlog" work as a format too. Linus