revision.c: ignore broken tags with ignore_missing_links
authorJeff King <peff@peff.net>
Sat, 20 May 2017 08:30:25 +0000 (04:30 -0400)
committerJunio C Hamano <gitster@pobox.com>
Sat, 20 May 2017 09:32:58 +0000 (18:32 +0900)
commita3ba6bf10abcaed1819d27fa45675c3a0e141f95
treec12010db2c18156130f55cdc36a8d369da4817d5
parent840ed141983718e0c5518a325534a5656797132a
revision.c: ignore broken tags with ignore_missing_links

When peeling a tag for prepare_revision_walk(), we do not
respect the ignore_missing_links flag. This can lead to a
bogus error when pack-objects walks the possibly-broken
unreachable-but-recent part of the object graph.

The other link-following all happens via traverse_commit_list(),
which explains why this case was missed. And our tests
covered only broken links from commits. Let's be more
comprehensive and cover broken tree entries (which do work)
and tags (which shows off this bug).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
revision.c
t/t6501-freshen-objects.sh