• B
    repack: modify behavior of -A option to leave unreferenced objects unpacked · ccc12972
    Brandon Casey 提交于
    The previous behavior of the -A option was to retain any previously
    packed objects which had become unreferenced, and place them into the newly
    created pack file.  Since git-gc, when run automatically with the --auto
    option, calls repack with the -A option, this had the effect of retaining
    unreferenced packed objects indefinitely. To avoid this scenario, the
    user was required to run git-gc with the little known --prune option or
    to manually run repack with the -a option.
    
    This patch changes the behavior of the -A option so that unreferenced
    objects that exist in any pack file being replaced, will be unpacked into
    the repository. The unreferenced loose objects can then be garbage collected
    by git-gc (i.e. git-prune) based on the gc.pruneExpire setting.
    
    Also add new tests for checking whether unreferenced objects which were
    previously packed are properly left in the repository unpacked after
    repacking.
    Signed-off-by: NBrandon Casey <drafnel@gmail.com>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    ccc12972
t7701-repack-unpack-unreachable.sh 1.4 KB