clone: fix --sparse option with URLs
The --sparse option was added to the clone builtin in d89f09c
(clone:
add --sparse mode, 2019-11-21) and was tested with a local path clone
in t1091-sparse-checkout-builtin.sh. However, due to a difference in
how local paths are handled versus URLs, this mechanism does not work
with URLs.
Modify the test to use a "file://" URL, which would output this error
before the code change:
Cloning into 'clone'...
fatal: cannot change to 'file://.../repo': No such file or directory
error: failed to initialize sparse-checkout
These errors are due to using a "-C <path>" option to call 'git -C
<path> sparse-checkout init' but the URL is being given instead of
the target directory.
Update that target directory to evaluate this correctly. I have also
manually tested that https:// URLs are handled correctly as well.
Acked-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
3c754067a1
commit
47dbf10d8a
@ -1130,7 +1130,7 @@ 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(repo))
|
||||
if (option_sparse_checkout && git_sparse_checkout_init(dir))
|
||||
return 1;
|
||||
|
||||
remote = remote_get(option_origin);
|
||||
|
@ -90,7 +90,7 @@ test_expect_success 'init with existing sparse-checkout' '
|
||||
'
|
||||
|
||||
test_expect_success 'clone --sparse' '
|
||||
git clone --sparse repo clone &&
|
||||
git clone --sparse "file://$(pwd)/repo" clone &&
|
||||
git -C clone sparse-checkout list >actual &&
|
||||
cat >expect <<-\EOF &&
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user