diff options
author | Martin Ågren <martin.agren@gmail.com> | 2018-03-14 22:34:19 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-03-15 10:37:32 -0700 |
commit | 4aa0161e837ef19e52f3bc65471d9ec0f857e20d (patch) | |
tree | a675132df9ae151aeee1d6f9311b1334cbe0edb8 /builtin/shortlog.c | |
parent | shortlog: add usage-string for stdin-reading (diff) | |
download | tgif-4aa0161e837ef19e52f3bc65471d9ec0f857e20d.tar.xz |
shortlog: disallow left-over arguments outside repo
If we are outside a repo and have any arguments left after
option-parsing, `setup_revisions()` will try to do its job and
something like this will happen:
$ git shortlog v2.16.0..
BUG: environment.c:183: git environment hasn't been setup
Aborted (core dumped)
The usage is wrong, but we could obviously handle this better. Note that
commit abe549e179 (shortlog: do not require to run from inside a git
repository, 2008-03-14) explicitly enabled `git shortlog` to run from
outside a repo, since we do not need a repo for parsing data from stdin.
Disallow left-over arguments when run from outside a repo.
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/shortlog.c')
-rw-r--r-- | builtin/shortlog.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/builtin/shortlog.c b/builtin/shortlog.c index dc4af03fca..3a823b3128 100644 --- a/builtin/shortlog.c +++ b/builtin/shortlog.c @@ -293,6 +293,11 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix) parse_done: argc = parse_options_end(&ctx); + if (nongit && argc > 1) { + error(_("too many arguments given outside repository")); + usage_with_options(shortlog_usage, options); + } + if (setup_revisions(argc, argv, &rev, NULL) != 1) { error(_("unrecognized argument: %s"), argv[1]); usage_with_options(shortlog_usage, options); |