Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement a winsymlinks mode that prefers native symlinks, falling back to the deep copy mode #114

Draft
wants to merge 2 commits into
base: msys2-3_3_6-release
Choose a base branch
from

Commits on Nov 7, 2022

  1. fixup! Instead of creating Cygwin symlinks, use deep copy by default

    This adds the missing documentation (in case we ever publish the
    information about the MSYS variable on msys2.org).
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Nov 7, 2022
    Configuration menu
    Copy the full SHA
    6f2e6f0 View commit details
    Browse the repository at this point in the history
  2. winsymlinks: add a mode preferring native symlinks with a deepcopy fa…

    …llback
    
    When native symlinks are available, it is a shame to create deep copies
    by default.
    
    However, since there are many scenarios where symlinks are not available
    (e.g. when running on FAT, or on older Windows versions, or when
    Developer Mode is not enabled), we've got to have a fallback.
    
    In the regular Cygwin world, it is legitimate to fall back to WSL
    symlinks and/or to the system file emulation (where a file is created
    that is marked with the "system" attribute and with content that adheres
    to a specific, magic form that is recognized specifically by the Cygwin
    runtime).
    
    However, in the world of MSYS2, the assumption is that the result of the
    operation should be as interoperable with regular Win32 programs as
    possible. Hence the default to "deepcopy".
    
    As a "best of both worlds" mode, let's implement one that tries to
    create native symlinks by default, and if that fails, uses the
    "deepcopy" method as a fallback.
    
    This addresses msys2#113.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Nov 7, 2022
    Configuration menu
    Copy the full SHA
    e69c9f4 View commit details
    Browse the repository at this point in the history