Skip to content

fix(path): support Windows MSYS drive paths - #566

Open
wang-kaopu wants to merge 1 commit into
omdsh-dev:mainfrom
wang-kaopu:fix/msys-drive-path
Open

fix(path): support Windows MSYS drive paths#566
wang-kaopu wants to merge 1 commit into
omdsh-dev:mainfrom
wang-kaopu:fix/msys-drive-path

Conversation

@wang-kaopu

@wang-kaopu wang-kaopu commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

变更说明

修复 Windows + Git Bash / MSYS 会话下,侧边栏无法正确打开 /e/.../c/... 等盘符映射路径的问题,对应 #556

Git Bash / MSYS 会将 Windows 盘符表示为 POSIX 风格路径,例如:

  • /e/project/foo.pyE:\project\foo.py
  • /c/Users/me/file.mdC:\Users\me\file.md
    此前 resolveSessionPath() 在 Windows 下仅处理 WSL UNC 会话。对于普通 Windows cwd,/e/... 会原样传入后续 Win32 路径解析,最终被解释为当前盘符下的 C:\e\...,导致 realpathENOENT

本 PR 在现有 WSL 路径投影之后增加 MSYS 单字母盘符映射:

  • Windows 下将 /x/... 映射为 X:\...
  • WSL 会话保持更高优先级,WSL 中的 /e/... 仍解释为 distro 内的 Linux 路径
  • /tmp/.../ab/... 等非单字母盘符形式保持原有行为
  • /e 保持原有行为
  • 非 Windows 平台行为不变
  • UNC 和已有 Windows 盘符路径行为不变

测试

已补充 resolveSessionPath() 单元测试,覆盖:

  • /e/... MSYS 盘符映射
  • /c/... MSYS 盘符映射
  • 大写盘符 /E/
  • WSL 优先于 MSYS 映射
  • /tmp/... 不被误判
  • /ab/... 不被误判
  • /e 不被误判
  • 非 Windows 平台不进行 MSYS 映射

本地验证通过:

  • pnpm test
  • pnpm typecheck
  • pnpm lint

Fixes #556

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[bug] Windows + Git Bash(MSYS) 会话:点击 /e/... 盘符映射路径报 cannot resolve target "C:\e\..."

1 participant