From: Lawrence Siebert <lawrencesiebert@gmail.com>
To: git@vger.kernel.org
Cc: Johannes.Schindelin@gmx.de, apelisse@gmail.com,
jrnieder@gmail.com, Lawrence Siebert <lawrencesiebert@gmail.com>
Subject: [PATCH] --count feature for git shortlog
Date: Sun, 28 Jun 2015 18:22:01 -0700 [thread overview]
Message-ID: <1435540922-12208-2-git-send-email-lawrencesiebert@gmail.com> (raw)
In-Reply-To: <1435540922-12208-1-git-send-email-lawrencesiebert@gmail.com>
--summary is per author --count counts all
Signed-off-by: Lawrence Siebert <lawrencesiebert@gmail.com>
---
builtin/shortlog.c | 14 +++++++++-----
shortlog.h | 1 +
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/builtin/shortlog.c b/builtin/shortlog.c
index c0bab6a..4b79dc8 100644
--- a/builtin/shortlog.c
+++ b/builtin/shortlog.c
@@ -226,8 +226,10 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)
int nongit = !startup_info->have_repository;
static const struct option options[] = {
+ OPT_BOOL('N', "count", &log.show_count,
+ N_("display the total number of commits for all authors")),
OPT_BOOL('n', "numbered", &log.sort_by_number,
- N_("sort output according to the number of commits per author")),
+ N_("Sort output according to the number of commits per author")),
OPT_BOOL('s', "summary", &log.summary,
N_("Suppress commit descriptions, only provides commit count")),
OPT_BOOL('e', "email", &log.email,
@@ -290,8 +292,8 @@ static void add_wrapped_shortlog_msg(struct strbuf *sb, const char *s,
void shortlog_output(struct shortlog *log)
{
int i, j;
+ unsigned int count = 0;
struct strbuf sb = STRBUF_INIT;
-
if (log->sort_by_number)
qsort(log->list.items, log->list.nr, sizeof(struct string_list_item),
compare_by_number);
@@ -300,7 +302,9 @@ void shortlog_output(struct shortlog *log)
if (log->summary) {
printf("%6d\t%s\n", onelines->nr, log->list.items[i].string);
- } else {
+ } else if (log->show_count) {
+ count += onelines->nr;
+ } else {
printf("%s (%d):\n", log->list.items[i].string, onelines->nr);
for (j = onelines->nr - 1; j >= 0; j--) {
const char *msg = onelines->items[j].string;
@@ -315,13 +319,13 @@ void shortlog_output(struct shortlog *log)
}
putchar('\n');
}
-
onelines->strdup_strings = 1;
string_list_clear(onelines, 0);
free(onelines);
log->list.items[i].util = NULL;
}
-
+ if (log->show_count)
+ printf("%d\n", count);
strbuf_release(&sb);
log->list.strdup_strings = 1;
string_list_clear(&log->list, 1);
diff --git a/shortlog.h b/shortlog.h
index de4f86f..57797b7 100644
--- a/shortlog.h
+++ b/shortlog.h
@@ -8,6 +8,7 @@ struct shortlog {
int summary;
int wrap_lines;
int sort_by_number;
+ int show_count;
int wrap;
int in1;
int in2;
--
1.9.1
next prev parent reply other threads:[~2015-06-29 1:22 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-29 1:22 [PATCH] --count feature for git shortlog Lawrence Siebert
2015-06-29 1:22 ` Lawrence Siebert [this message]
2015-06-29 1:22 ` Lawrence Siebert
2015-06-29 4:37 ` Junio C Hamano
[not found] ` <CAKDoJU4HcGoOS83MKwsQBXztYrDomMd9N-2SKc6iRyNhQQM5Eg@mail.gmail.com>
2015-06-29 16:46 ` Lawrence Siebert
2015-06-29 17:04 ` Junio C Hamano
2015-06-29 21:33 ` Lawrence Siebert
2015-06-30 12:10 ` Johannes Schindelin
2015-06-30 12:23 ` John Keeping
[not found] ` <CAKDoJU4cEvWvfnFsvfOJ_P0UOrD3RpLK1NdfxaUPiDTWXYg-oA@mail.gmail.com>
2015-07-01 3:00 ` Lawrence Siebert
2015-07-01 11:50 ` Jeff King
2015-07-01 15:15 ` Junio C Hamano
2015-07-03 17:31 ` Junio C Hamano
2015-07-03 23:32 ` Lawrence Siebert
2015-07-21 18:27 ` Jakub Narębski
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=1435540922-12208-2-git-send-email-lawrencesiebert@gmail.com \
--to=lawrencesiebert@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=apelisse@gmail.com \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).