Repository navigation
v0.4.2 — 修复 Windows 路径转换导致 fetch failed (issue #10)
修复
Windows 下 AI 智能对齐/浏览远端报 fetch failed(issue #10)
根因是 Git for Windows 的 MSYS2 路径转换:在 Git Bash 里,传给原生 .exe 的参数会被重写,
目录名里的点被当成路径段拆开 —— C:\Users\x\.dsh\dsh-sync\repo 变成
C:\Users\x\dsh\dsh-sync\repo(点消失、多出一级),git 于是在不存在的目录里执行并报错。
这也解释了「手动在该目录里跑 git fetch 成功、插件却失败」。
官方定性为 wontfix:git-for-windows/git#685
两层防护
- host 侧:git 子进程在 Windows 下自动注入
MSYS_NO_PATHCONV=1+MSYS2_ARG_CONV_EXCL='*',
仅作用于该子进程,不写全局环境(全局设置会破坏其它程序,官方专门警告过)。 - AI 侧:三个 AI 提示词(冲突处理 / AI 智能对齐 / 远端对齐)加入 Windows 前置保险:
判定平台 → 路径自检 → 每条 git 命令前置开关 →rev-parse --show-toplevel验证目录真实可达后才动手;
验证失败立即停止并如实汇报,不允许据错误目录判定「无冲突/无需修改」。
验证
- 新增
test/win-pathconv.test.mjs(8 项契约测试) - 离线测试 60 项全绿(原 52 + 新 8)
请 Windows 用户更新验证
dsh plugin add @weibaohui/dsh-sync@0.4.2更新后重试「AI 智能对齐」/「浏览远端」。若仍报错,请在 issue #10 附上 uname -s 输出与
完整报错(GIT_TRACE=1 更佳),以便定位是否还有其它链路。