• Show log

    Commit

  • Hash : 6be5ac23
    Author : Patrick Steinhardt
    Date : 2019-07-11T15:30:51

    checkout: postpone creation of symlinks to the end
    
    On most platforms it's fine to create symlinks to nonexisting files. Not
    so on Windows, where the type of a symlink (file or directory) needs to
    be set at creation time. So depending on whether the target file exists
    or not, we may end up with different symlink types. This creates a
    problem when performing checkouts, where we simply iterate over all blobs
    that need to be updated without treating symlinks any special. If the
    target file of the symlink is going to be checked out after the symlink
    itself, then the symlink will be created as directory symlink and not as
    file symlink.
    
    Fix the issue by iterating over blobs twice: once to perform postponed
    deletions and updates to non-symlink blobs, and once to perform updates
    to symlink blobs.