Skip to content

Work around symlink-related issues on Windows #70

@mortenpi

Description

@mortenpi

As discovered in #68, the way symlinks are handled in Windows with Git is problematic, and so to be on the safe side, we'll disable MultiDocumenter deployments on Windows for now. This issue tracks fixing the underlying symlink problems.


A brief description of the blockers faced in #68:

  • The fundamental problem with Windows appears to be that Git does not create symlinks by default in Windows. Instead, what are symlinks on the Git branch end up being simple text files. This is a problem, since Documenter deployments rely on organizing things with symlinks, and MultiDocumenter wants to traverse those symlinks sometimes.
  • You can force Git to create symlinks with git config --global core.symlinks true (although I think you also need to make sure you have the appropriate permissions, which includes being an administrator on older Windows versions, i.e. < 11?). But those still do not work -- Julia's isdir, for example, will throw permission errors even when running as an admin.

Just as a thought: one potential fix could be to use git ls-files -s to go through the list of files and "dereference" the symlinks ourselves (i.e. remove the text or symlink file and create a copy the destination directory). Unfortunately, it doesn't look like there's an option for Git to have it do that automatically when it checks out the repo.

Metadata

Metadata

Assignees

No one assigned

    Labels

    wontfixThis will not be worked on

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions