clone: detect errors in normalize_path_copy
commit22d3b8de1b625813faec6f3d6ffe66124837b78b
authorJeff King <peff@peff.net>
Wed, 5 Oct 2016 14:29:29 +0000 (5 10:29 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 5 Oct 2016 17:44:39 +0000 (5 10:44 -0700)
treea9934c344346d06c230c1f16be9b7ce169811b0e
parent0b65a8dbdb38962e700ee16776a3042beb489060
clone: detect errors in normalize_path_copy

When we are copying the alternates from the source
repository, if we find a relative path that is too deep for
the source (e.g., "../../../objects" from "/repo.git/objects"),
then normalize_path_copy will report an error and leave
trash in the buffer, which we will add to our new alternates
file. Instead, let's detect the error, print a warning, and
skip copying that alternate.

There's no need to die. The relative path is probably just
broken cruft in the source repo. If it turns out to have
been important for accessing some objects, we rely on other
parts of the clone to detect that, just as they would with a
missing object in the source repo itself (though note that
clones with "-s" are inherently local, which may do fewer
object-quality checks in the first place).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/clone.c