• Jeff King's avatar
    pack-revindex: open index if necessary · 4828ce98
    Jeff King authored
    We can't create a pack revindex if we haven't actually looked at the
    index. Normally we would never get as far as creating a revindex without
    having already been looking in the pack, so this code never bothered to
    double-check that pack->index_data had been loaded.
    But with the new multi-pack-index feature, many code paths might not
    load the individual pack .idx at all (they'd find objects via the midx
    and then open the .pack, but not its index).
    This can't yet be triggered in practice, because a bug in the midx code
    means we accidentally open up the individual .idx files anyway. But in
    preparation for fixing that, let's have the revindex code check that
    everything it needs has been loaded.
    In most cases this will just be a quick noop. But note that this does
    introduce a possibility of error (if we have to open the index and it's
    corrupt), so load_pack_revindex() now returns a result code, and callers
    need to handle the error.
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
pack-revindex.c 5.76 KB