mirror of
https://github.com/git/git.git
synced 2024-05-05 01:16:12 +02:00
3dc95e09e1
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>
42 lines
738 B
C
42 lines
738 B
C
#ifndef SHORTLOG_H
|
|
#define SHORTLOG_H
|
|
|
|
#include "string-list.h"
|
|
#include "date.h"
|
|
|
|
struct commit;
|
|
|
|
struct shortlog {
|
|
struct string_list list;
|
|
int summary;
|
|
int wrap_lines;
|
|
int sort_by_number;
|
|
int wrap;
|
|
int in1;
|
|
int in2;
|
|
int user_format;
|
|
int abbrev;
|
|
struct date_mode date_mode;
|
|
|
|
enum {
|
|
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;
|
|
FILE *file;
|
|
};
|
|
|
|
void shortlog_init(struct shortlog *log);
|
|
|
|
void shortlog_add_commit(struct shortlog *log, struct commit *commit);
|
|
|
|
void shortlog_output(struct shortlog *log);
|
|
|
|
#endif
|