aboutsummaryrefslogtreecommitdiffstats
path: root/shortlog.h
diff options
context:
space:
mode:
authorTaylor Blau <me@ttaylorr.com>2022-10-24 14:55:39 -0400
committerJunio C Hamano <gitster@pobox.com>2022-10-24 14:48:05 -0700
commit3dc95e09e1355ebde472bd5be37aa7b29ef774d3 (patch)
tree3f9eabadf001c1bf6d1946c6b6df6d48984b8b4b /shortlog.h
parentb017d3dae9fe5a5b636b8f7a5235cee2b1b90332 (diff)
downloadgit-3dc95e09e1355ebde472bd5be37aa7b29ef774d3.tar.gz
shortlog: support arbitrary commit format `--group`s
In addition to generating a shortlog based on committer, author, or the identity in one or more specified trailers, it can be useful to generate a shortlog based on an arbitrary commit format. This can be used, for example, to generate a distribution of commit activity over time, like so: $ git shortlog --group='%cd' --date='format:%Y-%m' -s v2.37.0.. 117 2022-06 274 2022-07 324 2022-08 263 2022-09 7 2022-10 Arbitrary commit formats can be used. In fact, `git shortlog`'s default behavior (to count by commit authors) can be emulated as follows: $ git shortlog --group='%aN <%aE>' ... and future patches will make the default behavior (as well as `--committer`, and `--group=trailer:<trailer>`) special cases of the more flexible `--group` option. Note also that the SHORTLOG_GROUP_FORMAT enum value is used only to designate that `--group:<format>` is in use when in stdin mode to declare that the combination is invalid. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'shortlog.h')
-rw-r--r--shortlog.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/shortlog.h b/shortlog.h
index dc388dd459..4850a8c30f 100644
--- a/shortlog.h
+++ b/shortlog.h
@@ -22,8 +22,10 @@ struct shortlog {
SHORTLOG_GROUP_AUTHOR = (1 << 0),
SHORTLOG_GROUP_COMMITTER = (1 << 1),
SHORTLOG_GROUP_TRAILER = (1 << 2),
+ SHORTLOG_GROUP_FORMAT = (1 << 3),
} groups;
struct string_list trailers;
+ struct string_list format;
int email;
struct string_list mailmap;