summaryrefslogtreecommitdiff
path: root/builtin/shortlog.c
diff options
context:
space:
mode:
authorMartin Ågren <martin.agren@gmail.com>2018-03-14 21:34:19 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-03-15 17:37:32 (GMT)
commit4aa0161e837ef19e52f3bc65471d9ec0f857e20d (patch)
treea675132df9ae151aeee1d6f9311b1334cbe0edb8 /builtin/shortlog.c
parentcd56d4e5b2ca315d51699984456e50e4c6715f49 (diff)
downloadgit-4aa0161e837ef19e52f3bc65471d9ec0f857e20d.zip
git-4aa0161e837ef19e52f3bc65471d9ec0f857e20d.tar.gz
git-4aa0161e837ef19e52f3bc65471d9ec0f857e20d.tar.bz2
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.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/builtin/shortlog.c b/builtin/shortlog.c
index dc4af03..3a823b3 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);