docs: document WSL trans Git ownership bridge

This commit is contained in:
Codex
2026-07-10 10:16:07 +02:00
parent 84b26b73d0
commit b6021f67d9
+1
View File
@@ -282,6 +282,7 @@ exec /root/unidesk/scripts/trans "$@"
- 反面形态必须删除或迁移:`trans G14 sh -- 'cd /root/hwlab && git status --short --branch'`、`trans G14 sh <<'SH' cd /root/hwlab-v02 git fetch origin v0.2 SH`、`tran G14 sh -- 'cd /home/ubuntu/workspace/unidesk-dev && ...'`、route 后继续写旧的 `script` / `shell` operation、`bun scripts/cli.ts ssh G14 -- 'cd /root/hwlab && ...'`。这些写法把已知 workspace 写进 command 字符串,破坏 route/operation 分离,引入本地 shell 二次解析、远端 cwd 漂移和并行 worktree 切换摩擦,或继续使用已移除的模糊 shell 旧名。
- 例外只限于一次性探测、临时 heredoc 草稿或旧文档复用;任何被复用第二次的 `cd <workspace> && ...` 都必须重写成 `trans <provider>:/absolute/workspace` 形式。
- 当远端存在多个并行 workspace(例如 `G14:/root/hwlab` 与 `G14:/root/hwlab-v02`)时,route 必须显式带 workspaceCLI 的 `pwd` 输出、后续 `apply-patch` 的相对路径和 `sh`/`bash` 的 cwd 全部跟随该 workspace;切换 workspace 必须切换 route,不允许在同一次 `trans` 链里再 `cd`。
- 当 host workspace 位于 `/mnt/<drive>` 且透传用户为 root 时,`trans` 会读取 route workspace owner uid,并仅在当前命令进程树中通过 `SUDO_UID` 让 Git 信任该 Windows 挂载工作区;不得为此写入全局 `safe.directory`。该桥接不授权不同 owner 的嵌套仓库,也不改变普通 Linux workspace;若大型 Windows 挂载仓库的 `git status` 等全树扫描超过 60 秒,应缩小查询或改用同 provider 的 `:win` route,而不是放宽短连接预算。通用 route 和 shell 规则见 `$unidesk-trans`。
- 本规则覆盖所有 host workspace 形态,包括 `G14:/root/hwlab`、`G14:/root/hwlab-v02`、`G14:/root/agentrun-v01`、`D601:/home/ubuntu/workspace/unidesk-dev`、`D601:/home/ubuntu/workspace/hwlab-dev`provider-gateway 侧已经把它们注册为 host workspace route。
- 与 `k3s` route 的分工不变:定位控制面继续写 `trans G14:k3s`、定位 workload/container 继续写 `trans G14:k3s:<namespace>:<workload>[:<container>]`pod/container 内 cwd 用 operation 参数 `--cwd /path`,或在已经明确选出 container 后才使用 `/path` route 后缀表达文件系统位置。host workspace 路径里的 `cd` 才需要被替换,控制面或 pod 内的多层 shell 不在本规则的清理范围。