Skip to content

v0.4.2 — 修复 Windows 路径转换导致 fetch failed (issue #10)

Choose a tag to compare

@weibaohui weibaohui released this 02 Oct 02:51
· 2 commits to main since this release

修复

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 更佳),以便定位是否还有其它链路。