Files
ElyOffice/tasks/reviews/C13.4-r2.md
T

14 lines
3.7 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
/Users/zacharyzhang/Documents/GitHub/Ely-GPUI-Components/src/git/merging.rs:144:冲突解析固定匹配七个标记字符,并把任意 `=======` 前缀行当作分隔符,违反 TREE-09,且会丢失所选侧的内容。真实 Git 与窗口探针复现:`.gitattributes` 设置 `a.txt conflict-marker-size=5`,Git 写出一个冲突块,界面得到零个块;直接“标为已解决”将仍带五字符标记的文件暂存,整个过程没有剩余标记确认。设置宽度为 10,传入侧为 `theirs-top\n======= literal\nTHEIRS-END\n`,点击取传入侧后结果仅剩 `THEIRS-END\n`。修复方向:按 Git 实际标记宽度及完整标记行结构解析,展示、块选择和剩余标记确认共用同一判定,并保留正文中的相似字符行。
apps/ely-tree/src/moves.rs:95:只要索引仍有未合并条目,就丢弃所有 Git 写操作的错误原话,上一轮 hook 错误可见性的修复仍有遗漏。真实 macOS 窗口复现:保持文本合并冲突,安装输出 `REVIEW_POST_CHECKOUT_DENIED` 并退出 1 的 `post-checkout` hook,点击“用当前侧的文件”;`git checkout --ours -- a.txt` 返回 1,应用只提示因冲突停下,错误对话框与 hook 原话均缺失。解决全部冲突后继续时的 `pre-commit` 拒绝回归已通过。修复方向:结合失败命令及实际失败原因判断冲突停顿,保留 hook、锁、签名及其他失败的完整输出;覆盖仍有未合并条目时的失败路径。
apps/ely-tree/src/conflict.rs:97:以 UTF-8 解码成功作为文本冲突的依据,含 NUL 的二进制内容会进入文本合并,随后读取失败并失去解决操作。复现:基底与两侧分别为 `one\0base\n`、`one\0ours\n`、`one\0theirs\n`,Git 合并停在二进制冲突;`conflict::read` 调用 `merge-file --zdiff3` 得到退出码 255 与 `Cannot merge binary files`,真实窗口缺少取当前侧、取传入侧和标为已解决控件,违反 TREE-09。上一轮含 `0xff` 的冲突已通过模型与真窗口复核。修复方向:按 Git 的二进制判定保留 `Stages::Whole` 及阶段存在性,覆盖含 NUL 且合法 UTF-8 的二进制冲突。
apps/ely-tree/src/conflict.rs:120:过滤掉已有基底的冲突块后,仍从第一份基底开始依次填充,导致后续冲突显示其他块的基底,违反 TREE-09。真实 Git diff3 复现:第一块双方替换 `base-first`,中间有十行相同内容,第二块双方在同一位置插入不同文字;Git 的第二块 `|||||||` 与 `=======` 之间为空。探针读回第一块基底为 `base-first\n`,第二块也被填成 `base-first\n`,实际共同祖先在第二处没有这行。修复方向:按原始冲突块序号对应各基底,区分已有 diff3 基底与待补基底,保留合法的空基底。
apps/ely-tree/src/moves.rs:134:远程分支切换仍使用简写引用,上一轮同名引用缺陷在远程分支路径上保留。复现:同时创建 `refs/remotes/origin/topic` 与标签 `refs/tags/origin/topic`,配置 origin 的 fetch 映射后,在应用切换远程分支;传出的 `git switch --track origin/topic` 报 `fatal: ambiguous object name: 'origin/topic'`,HEAD 保持原分支。普通同名本地分支/标签的读取与切换回归已通过。修复方向:将所选远程分支的完整引用身份用于切换及上游设置,覆盖远程分支与标签同名的操作。
/Users/zacharyzhang/Documents/GitHub/Ely-GPUI-Components/src/git/refs.rs:200:`Pick` 前的连续两行 `///` 构成同一段 rustdoc 注释,共 19 个英文词,违反注释单行且至多十词的规则。复现:922cd53 的第 200、201 行同时附着于 `Pick`。修复方向:保留一行描述 `Pick` 的注释并控制在十词内。