]> git.99rst.org Git - git.git/commitdiff
builtin/shortlog: don't set up revisions without repo
authorPatrick Steinhardt <redacted>
Tue, 7 May 2024 04:53:35 +0000 (06:53 +0200)
committerJunio C Hamano <redacted>
Tue, 7 May 2024 05:50:50 +0000 (22:50 -0700)
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 <redacted>
Signed-off-by: Junio C Hamano <redacted>
builtin/shortlog.c

index 3c7cd2d6ef83f9e43ec6645d5adbbd02000fbdd9..d4daf31e2285e2414c77a8b1a9754b79d310e4db 100644 (file)
@@ -435,7 +435,7 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)
                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]);
                usage_with_options(shortlog_usage, options);
        }
git clone https://git.99rst.org/PROJECT