Skip to content
  • Jeff King's avatar
    test index-pack on packs with recoverable delta cycles · b2ef3d9e
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    The previous commit added tests to show that index-pack
    correctly bails in unrecoverable situations. There are some
    situations where the data could be recovered, but it is not
    currently:
    
      1. If we can break the cycle using an object from another
         pack via --fix-thin.
    
      2. If we can break the cycle using a duplicate of one of
         the objects found in the same pack.
    
    Note that neither of these is particularly high priority; a
    delta cycle within a pack should never occur, and we have no
    record of even a buggy git implementation creating such a
    pack.
    
    However, it's worth adding these tests for two reasons. One,
    to document that we do not currently handle the situation,
    even though it is possible. And two, to exercise the code
    that runs in this situation; even though it fails, by
    running it we can confirm that index-pack detects the
    situation and aborts, and does not misbehave (e.g., by
    following the cycle in an infinite loop).
    
    In both cases, we hit an assert that aborts index-pack.
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Acked-by: default avatarNicolas Pitre <nico@fluxnic.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    b2ef3d9e