fix(core): M110 r2 —— duplicate_override_paths 两种冲突同时报,补 mrpack 同侧分支用例
- p2-2:`duplicate_override_paths` 改成「先按 path 分组,再在组内报 (侧集合, 条目份数)」, 判据 `侧数 > 1 || 份数 > 侧数`。r1 修好了跨侧(Both×Client)但按侧去重把「同侧两个组 撞同一路径」这条旧能力换掉了(实测返回 []);现在两种冲突同时报得出来,返回值升为 `Vec<(String, Vec<PackSide>, usize)>`(M111 注意:这是最后一次改形状的窗口)。 - p3-a:mrpack `check_overrides` 的「每侧只能有一个覆盖目录」分支补用例(此前零测试, 删掉它 54 条全绿;现在删掉即红)。 - p3-b:把 ReadBudget 的「每次调用一份额度,不是整包一份」写进 `override_files` / `ReadBudget` 文档(mrpack 连调三次 ⇒ 理论上限 3×;要整包共用额度就走 `override_files_with`;`open` 阶段的声明总量仍是整包一次)。 - 顺带(复审点名、各一行):mrpack 非表达目录的 hint 里 21 个连续空格; curseforge 文档里 `.minecraft/.minecraft/…` 的说法按 CF 语义订正(overrides 是 zip 内前缀, 内容铺开不丢;要不要多拷一层取决于导入器)。
This commit is contained in:
1 parent
6dd652aced
commit
34f3db359a
7 files changed
+111
-22
No files matched your search
@@ -59,6 +59,10 @@ impl Default for PackLimits {
|
||||
|
||||
/// 一次批量读取的**累计**预算(读取阶段,按实际读出的字节扣减)。
|
||||
///
|
||||
/// 作用域是"拿到它的那次扫描":`PackArchive::override_files` 每次调用新建一份,
|
||||
/// 所以要跨多次调用共享额度(例如整包只给一份 `max_uncompressed_bytes`),
|
||||
/// 必须由调用方自建一个并交给 `override_files_with`(r2 p3-b)。
|
||||
///
|
||||
/// 为什么需要它:中央目录声明的大小可以撒谎,单个条目也被限制在
|
||||
/// [`PackLimits::max_entry_bytes`],但"很多条各自合规"累起来仍可能远超
|
||||
/// `max_uncompressed_bytes`。批量读取(`override_files`)持有一个预算,边读边扣。
|
||||
|
||||
Reference in new issue
Block a user