diff options
author | Junio C Hamano <gitster@pobox.com> | 2018-04-10 02:25:44 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-04-10 02:25:44 +0300 |
commit | 78c20b8fcaf0c46942a8c91e38076358f9a948ac (patch) | |
tree | 9f172fdddeacc813299e63bcfa3d778151e9e133 | |
parent | a26e1f4b59fd6518c1f0d13eaa6b312eca4a9b14 (diff) | |
parent | 4aa0161e837ef19e52f3bc65471d9ec0f857e20d (diff) |
Merge branch 'ma/shortlog-revparse'
"git shortlog cruft" aborted with a BUG message when run outside a
Git repository. The command has been taught to complain about
extra and unwanted arguments on its command line instead in such a
case.
* ma/shortlog-revparse:
shortlog: disallow left-over arguments outside repo
shortlog: add usage-string for stdin-reading
git-shortlog.txt: reorder usages
-rw-r--r-- | Documentation/git-shortlog.txt | 2 | ||||
-rw-r--r-- | builtin/shortlog.c | 8 | ||||
-rwxr-xr-x | t/t4201-shortlog.sh | 5 |
3 files changed, 13 insertions, 2 deletions
diff --git a/Documentation/git-shortlog.txt b/Documentation/git-shortlog.txt index ee6c5476c1..5e35ea18ac 100644 --- a/Documentation/git-shortlog.txt +++ b/Documentation/git-shortlog.txt @@ -8,8 +8,8 @@ git-shortlog - Summarize 'git log' output SYNOPSIS -------- [verse] -git log --pretty=short | 'git shortlog' [<options>] 'git shortlog' [<options>] [<revision range>] [[\--] <path>...] +git log --pretty=short | 'git shortlog' [<options>] DESCRIPTION ----------- diff --git a/builtin/shortlog.c b/builtin/shortlog.c index e29875b843..3a823b3128 100644 --- a/builtin/shortlog.c +++ b/builtin/shortlog.c @@ -11,7 +11,8 @@ #include "parse-options.h" static char const * const shortlog_usage[] = { - N_("git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"), + N_("git shortlog [<options>] [<revision-range>] [[--] <path>...]"), + N_("git log --pretty=short | git shortlog [<options>]"), NULL }; @@ -292,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); diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh index da10478f59..ff6649ed9a 100755 --- a/t/t4201-shortlog.sh +++ b/t/t4201-shortlog.sh @@ -127,6 +127,11 @@ test_expect_success !MINGW 'shortlog can read --format=raw output' ' test_cmp expect out ' +test_expect_success 'shortlog from non-git directory refuses extra arguments' ' + test_must_fail env GIT_DIR=non-existing git shortlog foo 2>out && + test_i18ngrep "too many arguments" out +' + test_expect_success 'shortlog should add newline when input line matches wraplen' ' cat >expect <<\EOF && A U Thor (2): |