Files
ElyOffice/tasks/reviews/C13.2-r3.md
T

6 lines
1.6 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/shown.rs:294 — 文件类型变化的两段补丁共用折叠行游标,第二段新增块把 next 重置为 1,已删除的旧内容再次被显示成未改动行,违反 TREE-03、04。复现:HEAD 的 a.txt 为 "one\ntwo\n",将其换成指向 other.txt 的符号链接;改动区与已暂存区都在删除块和新增块后生成 "2 unchanged lines",展开后出现 one、two,右侧行号为 2、3,而 Git 新侧只有一行 other.txt。应用路径探针与真实窗口均复现;现有类型变化回归在 tests/diffs.rs:417 过滤了 Folded,仍然通过。修复方向:按文件段保存两侧边界并计算折叠区,覆盖类型变化时全部展示行与行号,确认已删除内容仅出现在删除块。
apps/ely-tree/src/shown.rs:194 — 工作树侧用 fs::read 跟随符号链接,以目标文件内容判定链接差异,导致合法链接差异读取失败或被错误分类,违反 TREE-03。复现:提交普通 a.txt 后将其替换成指向 other.txt 的符号链接,other.txt 缺失时,Git diff 正常给出删除与新增两段,点击改动区 a.txt 却显示 "This diff could not be read / No such file or directory";other.txt 含非 UTF-8 字节时,链接路径本身为 UTF-8,界面仍把其文本差异归为二进制。应用路径探针覆盖两种情形,真实窗口确认缺失目标的读取错误;已暂存区通过 cat-file 读取链接 blob,能正常显示。修复方向:按工作树文件类型读取 Git 比较的对象,符号链接读取链接路径字节,并覆盖缺失目标及非 UTF-8 目标的回归。