Files
ElyOffice/tasks/reviews/C13.1-r1.md
T

16 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL
apps/ely-tree/src/work.rs:59 — 暂存已暂存重命名文件的后续编辑会失败。场景:提交 b.txt,执行 `git mv b.txt c.txt`,继续修改 c.txt,再点“改动”分区中 c.txt 的暂存按钮。生成的 `git add --all -- c.txt b.txt` 返回 `fatal: pathspec 'b.txt' did not match any files`(退出码 128),新编辑仍留在工作区。真实 Git 探针及真窗口 AXPress 均复现;现有 15 项 ElyTree 测试全部通过,却漏掉此 RM 状态。修复方向:按操作和当前索引决定旧路径;已暂存重命名的后续暂存使用当前路径,取消暂存保留其所需的旧路径,并补此场景的回归测试。
apps/ely-tree/src/work.rs:36 — 首个提交前,文件暂存后继续编辑会导致取消暂存失败;全部取消的第 49 行分支同样受影响。场景:初始化仓库,写入并暂存 a.txt,再修改其工作区内容,执行取消暂存。当前 `git rm --cached -r -q -- a.txt` 返回 `staged content different from both the file and the HEAD`(退出码 1),索引保留原内容。真实 Git 探针复现 AM 状态;现有测试仅覆盖索引与工作区内容相同的情况。修复方向:显式取消暂存时允许移除首提交前内容不同的索引条目,保持工作区文件,并覆盖单文件及全部取消暂存。
apps/ely-tree/src/watch.rs:27 — 链接 worktree 的监听范围遗漏共享 Git 目录,外部引用更新无法触发重读,违反 TREE-02 和 PRD §13.3。场景:仅打开链接 worktree;在主仓库执行 `git update-ref refs/heads/linked SECOND`。引用写入主仓库的 `.git/refs`,当前监听仅覆盖链接工作区与 `.git/worktrees/linked`。窗口探针等待 3 秒后仍持有旧 HEAD;直接调用 `status::read` 已读到 SECOND。修复方向:解析并监听实际的 `--git-common-dir`,同时保留 worktree 私有 Git 目录监听,并增加共享引用更新的窗口回归测试。
apps/ely-tree/src/repo.rs:111 — 克隆输出按 CR 单独切块,使 LF 结尾的完整进度行积压。场景:克隆到一个接受连接后持续等待的 `git://` 服务。Git 已输出 `Cloning into '…'...\n`,`follow` 的回调在等待期间保持为零;停止后流关闭才交付该行。真实 Git 探针等待 800 毫秒并复现,当前测试仅在克隆结束后检查输出。修复方向:同时识别 CR 和 LF 并立即交付完整行,传播读取错误,补充克隆进行期间的输出断言。
apps/ely-tree/src/status.rs:25 — 缺失的上游比较计数被默认零值掩盖,界面错误显示同步状态。场景:设置 origin/main 为上游后删除 `refs/remotes/origin/main`。Git 的 porcelain 保留 `branch.upstream`、省略 `branch.ab`,`git branch -vv` 显示 `[origin/main: gone]`;当前 Head 与上游存在且同步时完全相同,真窗口仍显示 `origin/main ↑0 ↓0`。修复方向:保存计数是否可用的状态,第 25、26 行的零值仅代表实际收到的零计数;`view.rs:85` 按此状态呈现上游,并补充上游引用删除的回归测试。
apps/ely-tree/src/view.rs:109 — 界面缺少当前 Git 可执行文件路径,未满足 PRD §13.3 的“显示当前路径和版本”。场景:使用随附 Git 或通过 ELY_GIT 选择系统 Git,状态栏只呈现版本与来源;左侧路径属于工作区,应用内没有所选 Git 路径的入口。真窗口核对与渲染代码一致,Git.path 仅在启动日志中出现。修复方向:在当前 Git 的界面信息中呈现实际使用的可执行文件路径。
/Users/zacharyzhang/Documents/GitHub/Ely-GPUI-Components/src/git/changes.rs:24 — 4f8f3bd 新增的 Changed::lines 注释包含 15 个英文单词,超过 agents.md 的十词上限。场景:对新增注释按空白分词,`Added and removed; None when not counted, as for a binary file or a folder.` 得到 15 词。修复方向:将该注释缩短到十词以内,保持单行。