builtin/shortlog: don't set up revisions without repo

It is possible to run git-shortlog(1) outside of a repository by passing
it output from git-log(1) via standard input. Obviously, as there is no
repository in that context, it is thus unsupported to pass any revisions
as arguments.

Regardless of that we still end up calling `setup_revisions()`. While
that works alright, it is somewhat strange. Furthermore, this is about
to cause problems when we unset the default object hash.

Refactor the code to only call `setup_revisions()` when we have a
repository. This is safe to do as we already verify that there are no
arguments when running outside of a repository anyway.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Patrick Steinhardt 2024-05-07 06:53:35 +02:00 committed by Junio C Hamano
parent ab274909d4
commit 373bfa6077
1 changed files with 1 additions and 1 deletions

View File

@ -435,7 +435,7 @@ parse_done:
usage_with_options(shortlog_usage, options); usage_with_options(shortlog_usage, options);
} }


if (setup_revisions(argc, argv, &rev, NULL) != 1) { if (!nongit && setup_revisions(argc, argv, &rev, NULL) != 1) {
error(_("unrecognized argument: %s"), argv[1]); error(_("unrecognized argument: %s"), argv[1]);
usage_with_options(shortlog_usage, options); usage_with_options(shortlog_usage, options);
} }