• N
    fix repack with --max-pack-size · 5476a8ad
    Nicolas Pitre 提交于
    Two issues here:
    
    1) git-repack -a --max-pack-size=10 on the GIT repo dies pretty quick.
       There is a lot of confusion about deltas that were suposed to be
       reused from another pack but that get stored undeltified due to pack
       limit and object size doesn't match entry->size anymore.  This test
       is not really worth the complexity for determining when it is valid
       so get rid of it.
    
    2) If pack limit is reached, the object buffer is freed, including when
       it comes from a cached delta data.  In practice the object will be
       stored in a subsequent pack undeltified, but let's make sure no
       pointer to freed data subsists by clearing entry->delta_data.
    
    I also reorganized that code a bit to make it more readable.
    Signed-off-by: NNicolas Pitre <nico@cam.org>
    Signed-off-by: NJunio C Hamano <junkio@cox.net>
    5476a8ad
builtin-pack-objects.c 49.3 KB