[PATCH v2 5/7] builtin/clone: set up sparse checkout later
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Dec 12, 2023, 07:00 UTC
- Message-ID
- <917f15055feba4847927edced71454f0faa3da7c.1702361370.git.ps@pks.im>
- In-Reply-To
- <cover.1702361370.git.ps@pks.im>
When asked to do a sparse checkout, then git-clone(1) will spawn `git sparse-checkout set` to set up the configuration accordingly. This requires a proper Git repository or otherwise the command will fail. But as we are about to move creation of the reference database to a later point, this prerequisite will not hold anymore.
Move the logic to a later point in time where we know to have created the reference database already.
Signed-off-by: Patrick Steinhardt <ps@pks.im> --- builtin/clone.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/builtin/clone.c b/builtin/clone.c index d188650881..9c60923f31 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -1185,9 +1185,6 @@ int cmd_clone(int argc, const char **argv, const char *prefix) if (option_required_reference.nr || option_optional_reference.nr) setup_reference(); - if (option_sparse_checkout && git_sparse_checkout_init(dir)) - return 1; - remote = remote_get(remote_name); refspec_appendf(&remote->fetch, "+%s*:%s*", src_ref_prefix, @@ -1426,6 +1423,9 @@ int cmd_clone(int argc, const char **argv, const char *prefix) dissociate_from_references(); } + if (option_sparse_checkout && git_sparse_checkout_init(dir)) + return 1; + junk_mode = JUNK_LEAVE_REPO; err = checkout(submodule_progress, filter_submodules);
-- 2.43.GIT