prune: turn on ref_paranoia flag
commitff4056bbc35aa499f449cbab46702a76cea0e532
authorJeff King <peff@peff.net>
Fri, 20 Mar 2015 18:43:09 +0000 (20 14:43 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 20 Mar 2015 19:40:56 +0000 (20 12:40 -0700)
tree685f583e04d455bf77135c38e61a892c48223e6d
parent49672f26d9a3826a6a74c6ff4d2409b7b0c74495
prune: turn on ref_paranoia flag

Prune should know about broken objects at the tips of refs,
so that we can feed them to our traversal rather than
ignoring them. It's better for us to abort the operation on
the broken object than it is to start deleting objects with
an incomplete view of the reachability namespace.

Note that for missing objects, aborting is the best we can
do. For a badly-named ref, we technically could use its sha1
as a reachability tip. However, the iteration code just
feeds us a null sha1, so there would be a reasonable amount
of code involved to pass down our wishes. It's not really
worth trying to do better, because this is a case that
should happen extremely rarely, and the message we provide:

  fatal: unable to parse object: refs/heads/bogus:name

is probably enough to point the user in the right direction.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/prune.c
t/t5312-prune-corruption.sh