From: Jacob Stopak <jacob@initialcommit.io>
To: Jeff King <peff@peff.net>
Cc: Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org, martin.agren@gmail.com
Subject: Re: [RFC PATCH v2] shortlog: add group-by options for year and month
Date: Fri, 23 Sep 2022 21:38:29 -0700 [thread overview]
Message-ID: <Yy6JxQz4ZxghQnG1.jacob@initialcommit.io> (raw)
In-Reply-To: <Yy4sIAHdvp6yRql+@coredump.intra.peff.net>
On Fri, Sep 23, 2022 at 05:58:56PM -0400, Jeff King wrote:
> I don't think you even really need the regexp. If we respect --date,
> then you should be able to ask for --date=format:%Y-%m.
Hmm I tried passing in --date=format:... to my patched shortlog command
along with setting some date placeholder like "... %cd ..." in the code,
but it's not picking up on the format. Do you know how the date format
can be wedged into the format_commit_message(...) "format" argument?
> Unfortunately there's no way to specify the format as part of the
> placeholder. The for-each-ref formatter understands this, like:
>
> %(authordate:format:%Y-%m)
>
> I wouldn't be opposed to teaching the git-log formatter something
> similar.
Oh that would solve my problem... Would it be a hefty effort to teach
this to the git-log formatter?
> But there's something else interesting going on in Jack's patch, which
> is that he's not just introducing the date-sorting, but also that it's
> used in conjunction with other sorting. So really the intended use is
> something like:
>
> git shortlog --group:author --group:%Y-%m
Yes I sort of stumbled on this and realized that this way I wouldn't have
to touch the actual sorting or grouping functionality at all, which was
already working properly. I just needed to reformat the shortlog message to
include the year and/or month in a way that kept things consistent.
> I think we'd want to allow the general form to be a series of groupings.
> In the output from his patch it looks like:
>
> 2022-09 Jeff King
> some commit message
> another commit message
>
> I.e., the groups are collapsed into a single string, and unique strings
> become their own groups (and are sorted in the usual way).
>
> If you give up the regex thing, then that naturally falls out as
> (imagining we learn about authordate as a placeholder):
>
> git shortlog --group='%(authordate:format=%Y-%n) %an'
>
> without having to implement multiple groupings as a specific feature
> (which is both more code, but also has user-facing confusion about when
> --group overrides versus appends). That also skips the question of which
> --group-by-regex applies to which --group-by-value.
>
> I do agree the regex thing is more flexible, but if we can't come up
> with a case more compelling than subsystem matching, I'd just as soon
> add %(subject:subsystem) or similar. :)
>
> -Peff
I like this idea too. Since it requires a larger re-implementation,
maybe I can pursue this going forward. I assume if we did this we would
keep the existing group options like "--group=author" as shortcuts, and
refactor them behind the scenes to use the new method. If so it may be
useful to add my originally suggested options of "--group=year" and
"--group=month" as well for convenient default time-based groupings.
How do you feel about me submitting a v3 patch of my initial suggested
implementation of new group options for year and month? Then going forward
I can work on generalizing the grouping feature the way Peff suggested.
-Jack
next prev parent reply other threads:[~2022-09-24 4:38 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-22 6:18 [RFC PATCH] shortlog: add group-by options for year and month Jacob Stopak
2022-09-22 15:46 ` Martin Ågren
2022-09-22 23:25 ` [RFC PATCH v2] " Jacob Stopak
2022-09-23 16:17 ` Junio C Hamano
2022-09-23 21:19 ` Jacob Stopak
2022-09-23 21:58 ` Jeff King
2022-09-23 22:06 ` Junio C Hamano
2022-09-24 4:38 ` Jacob Stopak [this message]
2022-10-05 22:14 ` Jeff King
2022-10-05 21:43 ` Taylor Blau
2022-10-05 22:26 ` Jeff King
2022-10-07 0:48 ` Jacob Stopak
2022-10-07 21:59 ` Taylor Blau
2022-10-11 0:59 ` Jeff King
2022-10-07 22:24 ` Taylor Blau
2022-10-11 1:00 ` Jeff King
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=Yy6JxQz4ZxghQnG1.jacob@initialcommit.io \
--to=jacob@initialcommit.io \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=martin.agren@gmail.com \
--cc=peff@peff.net \
/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.