[PATCH 00/18] Support symbolic links on Windows
- From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Dec 17, 2025, 14:08 UTC
- Message-ID
- <pull.2018.git.1765980535.gitgitgadget@gmail.com>
This finally upstreams Git for Windows' support for Windows' branch of symbolic links, which has been maturing since 2015. It is based off of js/prep-symlink-windows.
Bill Zissimopoulos (1): mingw: compute the correct size for symlinks in `mingw_lstat()`
Johannes Schindelin (3): mingw: try to create symlinks without elevated permissions mingw: emulate `stat()` a little more faithfully mingw: special-case index entries for symlinks with buggy size
Karsten Blees (14):
mingw: don't call `GetFileAttributes()` twice in `mingw_lstat()`
mingw: implement `stat()` with symlink support
mingw: drop the separate `do_lstat()` function
mingw: let `mingw_lstat()` error early upon problems with reparse
points
mingw: teach dirent about symlinks
mingw: factor out the retry logic
mingw: change default of `core.symlinks` to false
mingw: add symlink-specific error codes
mingw: handle symlinks to directories in `mingw_unlink()`
mingw: support renaming symlinks
mingw: allow `mingw_chdir()` to change to symlink-resolved directories
mingw: implement `readlink()`
mingw: implement basic `symlink()` functionality (file symlinks only)
mingw: add support for symlinks to directoriescompat/mingw-posix.h | 6 +- compat/mingw.c | 635 ++++++++++++++++++++++++++++++++---------- compat/win32.h | 6 +- compat/win32/dirent.c | 5 +- read-cache.c | 11 + 5 files changed, 507 insertions(+), 156 deletions(-)
base-commit: 6f6fe02f5fe587ec9788f8a5a34281949d7b2ca1 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2018%2Fdscho%2Fsymlinks-next-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2018/dscho/symlinks-next-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/2018
-- gitgitgadget