Skip to content

Symbolic Link Support Broken in Windows ARM64 #4707

Closed
@ElectricalBoy

Description

@ElectricalBoy
  • I was not able to find an open or closed issue matching what I'm seeing

Setup

  • Which version of Git for Windows are you using? Is it 32-bit or 64-bit?
$ git --version --build-options

git version 2.43.0.windows.1
cpu: aarch64
built from commit: 4b968f3ea3b32a7bc50846bab49f3f381841d297
sizeof-long: 4
sizeof-size_t: 8
shell-path: /bin/sh
feature: fsmonitor--daemon

Also occurred in the ARM64 build of GfW 2.42.0.windows.1

  • Which version of Windows are you running? Vista, 7, 8, 10? Is it 32-bit or 64-bit?

    Windows 11 23H2 (build 22631.2428)

  • What options did you set as part of the installation? Or did you choose the defaults?

Editor Option: VisualStudioCode
Custom Editor Path: 
Default Branch Option: main
Path Option: Cmd
SSH Option: ExternalOpenSSH
Tortoise Option: false
CURL Option: WinSSL
CRLF Option: CRLFAlways
Bash Terminal Option: ConHost
Git Pull Behavior Option: FFOnly
Use Credential Manager: Enabled
Performance Tweaks FSCache: Enabled
Enable Symlinks: Enabled
Enable Pseudo Console Support: Disabled
Enable FSMonitor: Disabled
  • Any other interesting things about your environment that might be related to the issue you're seeing?

    • Device used: Surface Pro X (SQ1)
    • Developer mode enabled in Windows (for symlink permission)
    • ARM64 build by @dennisameling used
    • Issue not present in x64 build of GfW
    • Creating symlinks in Windows on ARM (via mklink in cmd) works without issues

Details

  • Which terminal/shell are you running Git from? e.g Bash/CMD/PowerShell/other

    Windows Powershell

  • What commands did you run to trigger this issue? If you can provide a Minimal, Complete, and Verifiable example this will help us understand the issue.

    1. Clone https://github.com/ElectricalBoy/symlink-test
    2. cd to the cloned repository
    3. Run git config --local -l and observe output.
    4. Run git config core.symlinks true (Reason described below)
    5. Perform a hard reset (via git reset --hard) to ElectricalBoy/symlink-test@5c18b50
      (Last commit with no symlink in the reproducer repository)
    6. Run git pull
  • What did you expect to occur after running these commands?

  • What actually happened instead?

    • With x64 build of GfW: As expected in both steps 3 and 7
    • With ARM64 build of GfW:
      • At step 3: core.symlinks=false entry present
      • At step 7:
        error: unable to create symlink bar.txt: Permission denied
        error: unable to create symlink dir/bar2.txt: Permission denied
        
  • If the problem was occurring with a specific repository, can you provide the URL to that repository to help us with testing?

    N/A - occurs in all repositories. See above for the link to the reproducer.

  • Workarounds found so far:

    • Do not use symlinks in repositories (not ideal, but okay)
    • Disable symlinks entirely, i.e., set core.symlinks to false (also not ideal, but okay)
    • Use WSL and the upstream Git inside it (works, but requires virtualization running)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions