--summary is per author --count counts all
Signed-off-by: Lawrence Siebert <[email protected]>
---
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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html