clone: fix --sparse option with URLs
commit47dbf10d8a5ce8c9b441a16b7698c7d70585dff0
authorDerrick Stolee <dstolee@microsoft.com>
Fri, 24 Jan 2020 21:19:34 +0000 (24 21:19 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 24 Jan 2020 21:26:54 +0000 (24 13:26 -0800)
tree1456d61c3980c0c4a4ed1431548037f712400027
parent3c754067a1164ffafd965dcd44a9f004e6100e42
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>
builtin/clone.c
t/t1091-sparse-checkout-builtin.sh