shortlog: respect the --output=<file> setting

Thanks to the diff option parsing, we already know about this option.
We just have to make use of it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin 2016-06-22 17:02:07 +02:00 committed by Junio C Hamano
parent 36a4d905c3
commit 7f7d712bcf
2 changed files with 9 additions and 1 deletions

View file

@ -229,7 +229,6 @@ void shortlog_init(struct shortlog *log)
log->wrap = DEFAULT_WRAPLEN;
log->in1 = DEFAULT_INDENT1;
log->in2 = DEFAULT_INDENT2;
log->file = stdout;
}
int cmd_shortlog(int argc, const char **argv, const char *prefix)
@ -277,6 +276,7 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)
log.user_format = rev.commit_format == CMIT_FMT_USERFORMAT;
log.abbrev = rev.abbrev;
log.file = rev.diffopt.file;
/* assume HEAD if from a tty */
if (!nongit && !rev.pending.nr && isatty(0))
@ -290,6 +290,8 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)
get_from_rev(&rev, &log);
shortlog_output(&log);
if (log.file != stdout)
fclose(log.file);
return 0;
}

View file

@ -184,4 +184,10 @@ test_expect_success 'shortlog with revision pseudo options' '
git shortlog --exclude=refs/heads/m* --all
'
test_expect_success 'shortlog with --output=<file>' '
git shortlog --output=shortlog master >output &&
test ! -s output &&
test_line_count = 7 shortlog
'
test_done