[PATCH v2 11/12] builtin/shortlog: don't set up revisions without repo
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Apr 23, 2024, 05:08 UTC
- Message-ID
- <51bcddbc3154addac208ba15866ff70becf90480.1713848619.git.ps@pks.im>
- In-Reply-To
- <cover.1713848619.git.ps@pks.im>
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> --- builtin/shortlog.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/builtin/shortlog.c b/builtin/shortlog.c index 3c7cd2d6ef..d4daf31e22 100644 --- a/builtin/shortlog.c +++ b/builtin/shortlog.c @@ -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); }
-- 2.45.0-rc0