• J
    shallow: automatically clean up shallow tempfiles · 0179c945
    Jeff King 提交于
    We sometimes write tempfiles of the form "shallow_XXXXXX"
    during fetch/push operations with shallow repositories.
    Under normal circumstances, we clean up the result when we
    are done. However, we do no take steps to clean up after
    ourselves when we exit due to die() or signal death.
    
    This patch teaches the tempfile creation code to register
    handlers to clean up after ourselves. To handle this, we
    change the ownership semantics of the filename returned by
    setup_temporary_shallow. It now keeps a copy of the filename
    itself, and returns only a const pointer to it.
    
    We can also do away with explicit tempfile removal in the
    callers. They all exit not long after finishing with the
    file, so they can rely on the auto-cleanup, simplifying the
    code.
    
    Note that we keep things simple and maintain only a single
    filename to be cleaned. This is sufficient for the current
    caller, but we future-proof it with a die("BUG").
    Signed-off-by: NJeff King <peff@peff.net>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    0179c945
receive-pack.c 30.1 KB