Skip to content
  • Jeff King's avatar
    diffcore-break: save cnt_data for other phases · 8282de94
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    The "break" phase works by counting changes between two
    blobs with the same path. We do this by splitting the file
    into chunks (or lines for text oriented files) and then
    keeping a count of chunk hashes.
    
    The "rename" phase counts changes between blobs at two
    different paths. However, it uses the exact same set of
    chunk hashes (which are immutable for a given sha1).
    
    The rename phase can therefore use the same hash data as
    break. Unfortunately, we were throwing this data away after
    computing it in the break phase. This patch instead attaches
    it to the filespec and lets it live through the rename
    phase, working under the assumption that most of the time
    that breaks are being computed, renames will be too.
    
    We only do this optimization for files which have actually
    been broken, as those ones will be candidates for rename
    detection (and it is a time-space tradeoff, so we don't want
    to waste space keeping useless data).
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    8282de94