14 lines
3.7 KiB
Markdown
14 lines
3.7 KiB
Markdown
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` 的注释并控制在十词内。
|