Skip to content
  • Shawn O. Pearce's avatar
    Remove pack.keep after ref updates in git-fetch · 1788c39c
    Shawn O. Pearce authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    If we are using a native packfile to perform a git-fetch invocation
    and the received packfile contained more than the configured limits
    of fetch.unpackLimit/transfer.unpackLimit then index-pack will output
    a single line saying "keep\t$sha1\n" to stdout.  This line needs to
    be captured and retained so we can delete the corresponding .keep
    file ("$GIT_DIR/objects/pack/pack-$sha1.keep") once all refs have
    been safely updated.
    
    This trick has long been in use with git-fetch.sh and its lower level
    helper git-fetch--tool as a way to allow index-pack to save the new
    packfile before the refs have been updated and yet avoid a race with
    any concurrently running git-repack process.  It was unfortunately
    lost when git-fetch.sh was converted to pure C and fetch--tool was
    no longer being invoked.
    
    Signed-off-by: default avatarShawn O. Pearce <spearce@spearce.org>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    1788c39c