Subject: [PATCH 0/7] shortlog: introduce `--group=<format>`

From: Taylor Blau <[email-masked]>
Date: Mon, 10 Oct 2022 20:33:59 -0400

This series is based on a suggestion[1] from Junio in response to
Jacob Stopak's series to add committer month/year options as shortlog
groups.

This series pursues a more flexible approach, where arbitrary pretty
formats can be used to generate group names in shortlog. For example, to
group by committer month/year, you can do the following:

    $ git.compile shortlog -s --group='%cd' --date='format:%Y-%m' v2.37.0..
       117  2022-06
       274  2022-07
       325  2022-08
       271  2022-09
        17  2022-10

, which is cute. It can also be used to reimplement existing
functionality in shortlog, which is what the final three patches in this
series do. Author and committer options are implemented under the hood
as if they were shorthands for `--group='%aN <%aE>'` (or `--group='%cN
<%cE>'`, respectively).

The `--group=trailer:<key>` option is also reimplemented, but it is
slightly trickier than the rest. See the final patch for more details
there.

Thanks in advance for your review.

[1]: https://lore.kernel.org/git/[email-masked]/

Jeff King (1):
  shortlog: accept `--date`-related options

Taylor Blau (6):
  Documentation: extract date-options.txt
  shortlog: extract `--group` fragment for translation
  shortlog: support arbitrary commit format `--group`s
  shortlog: implement `--group=author` in terms of `--group=<format>`
  shortlog: implement `--group=committer` in terms of `--group=<format>`
  shortlog: implement `--group=trailer` in terms of `--group=<format>`

 Documentation/date-options.txt     |  66 +++++++++++++
 Documentation/git-shortlog.txt     |   4 +
 Documentation/rev-list-options.txt |  67 +------------
 builtin/log.c                      |   1 +
 builtin/shortlog.c                 | 145 +++++++++++++++--------------
 shortlog.h                         |   6 +-
 t/t4201-shortlog.sh                |   9 ++
 7 files changed, 163 insertions(+), 135 deletions(-)
 create mode 100644 Documentation/date-options.txt

-- 
2.37.0.1.g1379af2e9d