From: Robert Karszniewicz <avoidr@posteo.de>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [RFC PATCH] log: add log.showStat configuration variable
Date: Sat, 10 Oct 2020 16:02:02 +0200 [thread overview]
Message-ID: <20201010140202.GA20470@HP> (raw)
In-Reply-To: <xmqq1ri8y4zl.fsf@gitster.c.googlers.com>
On Thu, Oct 08, 2020 at 10:58:22AM -0700, Junio C Hamano wrote:
> Robert Karszniewicz <avoidr@posteo.de> writes:
>
> > Changes default behaviour of `git log` and `git show` when no
> > command-line options are given. Doesn't affect behaviour otherwise (same
> > behaviour as with stash.showStat).
> > ---
> > I've wanted to have `show` and `log` show --stat by default, and I
> > couldn't find any better solution for it. And I've discovered that there
> > is stash.showStat, which is exactly what I want. So I wanted to bring
> > stash.showStat to `show` and `log`.
>
> I would be happy if I can configure my "git show" to
>
> - show not just patch but stat by default;
> - keep showing nothing when told to be silent with "git show -s"
>
> independently what happens to my "git log". Specifically, I do not
> want to see a configuration that I use to tweak "git show" the way I
> want (see above) to make my "git log" to become "git log --stat".
>
> And why is "stat" so special? I am sure there are people who want
> to do --numstat or --summary or combinations of these by default,
I think --stat is "special" because it is the most prominent one,
popularized by the format-patch format. I've personally come to like
--stat very much, to me it serves as a TOC of a commit, an extension of
the commit message, an essential description of a commit/patch.
It makes sense for format-patch, but it does not make less sense for
`show`. (Or does it? I mean, if it is a good idea for distributable
patch files, why is it less of a good idea for local commits/patches?)
Then we also have `stash-show`, which shows nothing /but/ --stat by
default. Here again: what's the difference between `show` and
`stash-show`? One might say "different contexts", but I don't see them
being that different, really. It just seems inconsistent to me.
And that was what I wanted to achieve with my patch - to make it
possible to make the three formats consistent with each other.
That's how I think --stat is special. For other "unknown"/"custom"
options I would use an alias, as I already do for variations of `log`
options.
Then why did I still add log.showStat? Because it seemed like too close
of a relative not to do it. Also because I personally use it and I
believe that commit message and stat belong together and it's an
injustice to separate them. And still only because "--stat is special".
> > diff --git a/revision.h b/revision.h
> > index f6bf860d19..e402c519d8 100644
> > --- a/revision.h
> > +++ b/revision.h
> > @@ -204,6 +204,7 @@ struct rev_info {
> > show_merge:1,
> > show_notes_given:1,
> > show_signature:1,
> > + show_stat:1,
> > pretty_given:1,
> > abbrev_commit:1,
> > abbrev_commit_given:1,
>
> The change to the code we saw in builtin/log.c, e.g.
>
> > + if (!rev->diffopt.output_format) {
> > + /* Turn --cc/-c into -p --cc/-c when -p was not given */
> > + if (rev->combine_merges)
> > + rev->diffopt.output_format = DIFF_FORMAT_PATCH;
> > +
> > + if (rev->show_stat)
> > + rev->diffopt.output_format |= DIFF_FORMAT_DIFFSTAT;
> > + }
>
> hints us that this new bit belongs to the group that the
> combine_merges bit belongs to, not here, no?
Right! I remember being unsure about it, but then the peer pressure of
all the show* variables made me group it to them.
>
> But again, I am not sure if a new bit in rev_info structure is a
> good way to proceed---after all, when a diff (in various forms, like
> "patch", "stat only", "patch and stat", "patch, stat, and summary")
> is shown, how exactly they are shown is not controlled by bits in this
> structure (rather, that comes from the diffopt field).
I will try to find a better way.
>
> Thanks.
Thank you for your comments.
next prev parent reply other threads:[~2020-10-10 23:10 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-08 16:20 [RFC PATCH] log: add log.showStat configuration variable Robert Karszniewicz
2020-10-08 17:58 ` Junio C Hamano
2020-10-10 14:02 ` Robert Karszniewicz [this message]
2020-10-08 18:12 ` Derrick Stolee
2020-10-11 9:59 ` Robert Karszniewicz
2020-10-12 12:50 ` Derrick Stolee
2020-10-12 16:14 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201010140202.GA20470@HP \
--to=avoidr@posteo.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.