• Junio C Hamano's avatar
    cache-tree: do not try to use an invalidated subtree info to build a tree · 4ed115e9
    Junio C Hamano authored
    We punt from repairing the cache-tree during a branch switching if
    it involves having to create a new tree object that does not yet
    exist in the object store.  "mkdir dir && >dir/file && git add dir"
    followed by "git checkout" is one example, when a tree that records
    the state of such "dir/" is not in the object store.
    However, after discovering that we do not have a tree object that
    records the state of "dir/", the caller failed to remember the fact
    that it noticed the cache-tree entry it received for "dir/" is
    invalidated, it already knows it should not be populating the level
    that has "dir/" as its immediate subdirectory, and it is not an
    error at all for the sublevel cache-tree entry gave it a bogus
    object name it shouldn't even look at.
    This led the caller to detect and report a non-existent error.  The
    end result was the same and we avoided stuffing a non-existent tree
    to the cache-tree, but we shouldn't have issued an alarming error
    message to the user.
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
t0090-cache-tree.sh 4.95 KB