Re: [GSOC PATCH v3 2/2] builtin/prune: stop depending on 'the_repository'
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Jul 7, 2025, 06:08 UTC
- Message-ID
- <aGtkZgbJhO-GQ1XX@pks.im>
- In-Reply-To
- <22fbbc8cf1b5cd622197e6d9f009acdbbcc0e802.1751630981.git.ayu.chandekar@gmail.com>
On Fri, Jul 04, 2025 at 07:42:35PM +0530, Ayush Chandekar wrote:
Show 17 quoted lines
> diff --git a/builtin/prune.c b/builtin/prune.c
> index dab3c19b6f..320e9c2341 100644
> --- a/builtin/prune.c
> +++ b/builtin/prune.c
> @@ -173,20 +171,19 @@ int cmd_prune(int argc,
> expire = TIME_MAX;
> save_commit_buffer = 0;
> disable_replace_refs();
> - repo_init_revisions(the_repository, &revs, prefix);
>
> argc = parse_options(argc, argv, prefix, options, prune_usage, 0);
>
> - if (the_repository->repository_format_precious_objects)
> + repo_init_revisions(repo, &revs, prefix);
> + if (repo->repository_format_precious_objects)
> die(_("cannot prune in a precious-objects repo"));
> Okay, we now only end up using the passed-in potentially-NULL `repo` after we have called `parse_options`. Makes sense.
Show 16 quoted lines
> diff --git a/t/t1517-outside-repo.sh b/t/t1517-outside-repo.sh > index 6824581317..8f59b867f2 100755 > --- a/t/t1517-outside-repo.sh > +++ b/t/t1517-outside-repo.sh > @@ -114,4 +114,11 @@ test_expect_success 'update-server-info does not crash with -h' ' > test_grep "[Uu]sage: git update-server-info " usage > ' > > +test_expect_success 'prune does not crash with -h' ' > + test_expect_code 129 git prune -h >usage && > + test_grep "[Uu]sage: git prune " usage && > + test_expect_code 129 nongit git prune -h >usage && > + test_grep "[Uu]sage: git prune " usage > +' > + > test_done
And we have another test that verifies that all of this works outside of a repository.
This addresses my review comments, so this version looks good to me. Thanks!
Patrick