зеркало из https://github.com/microsoft/git.git
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>
This commit is contained in:
Родитель
cd56d4e5b2
Коммит
4aa0161e83
|
@ -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);
|
||||
|
|
|
@ -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):
|
||||
|
|
Загрузка…
Ссылка в новой задаче