From c0d7bb9c8eae38326580762dc6151fdc3bc991bf Mon Sep 17 00:00:00 2001 From: Wanderingss <1624155937@qq.com> Date: Tue, 27 Oct 2026 09:47:23 +0800 Subject: [PATCH] =?UTF-8?q?docs(=E9=97=A8=E7=A6=81):=20mem-budget=20?= =?UTF-8?q?=E7=AC=AC=206=20=E8=8A=82=E8=A1=A5=E4=B8=80=E6=9D=A1=E7=9B=B2?= =?UTF-8?q?=E5=8C=BA=E2=80=94=E2=80=94=E5=90=8C=E7=A0=81=E5=87=AD=E8=AF=81?= =?UTF-8?q?=E6=8C=89=20git=20=E7=B4=A2=E5=BC=95=E7=94=9F=E6=88=90=EF=BC=8C?= =?UTF-8?q?=E5=A4=9A=E4=BA=BA=E5=90=8C=E6=A0=91=E6=97=B6=E5=BF=85=E7=BA=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 今天道G 报出 `check_size_gate.py --local` 单跑 exit 1(代码指纹与体积测量指纹不一致),我复核后确认这不是 预算问题、也不是谁改坏了台账,而是**该凭证的定义在多人同树下必然不成立**:代码指纹取的是 **git 索引里的 blob**,而此刻工作区里有别的任务在飞、尚未入索引的改动 ⇒ 两边算出来的东西本来就不是同一份内容。 写进 §6 的三点判据: · 它**只挂在 `scripts/ci_local.py` 的 L0c,不在这 51 条 pre-commit 钩子内** ⇒ 红它不等于提交 会被拦,别在 提交被拦的清单里找它; · 报错若同时列出「未入索引的文件」而那些文件正被别的任务改 ⇒ 等它们入库后统一 `@build` → `ram_baseline.py --update` 补凭证;**绝不为把它调绿去 `git add` 别人在飞的改动**(这条比前两条更要紧, 今天就这样发生过一次:别人已 staged 的文件会被我的 add 顺手卷进我这一笔); · 本节写作时凭证**仍是红的**(回填发生在通讯卡入库之后)——我只写成因与判据,**不预告还没发生的结果**, 这正是 `pre-commit使用说明.md` §2.5 那条「注释陈述事实不陈述意图」在同一天的第二次应用。 自查:`check_doc_links --all` exit 0(198 篇)、本篇 `--sections-strict` 通过、noBOM / LF / U+FFFD=0 / 结尾 换行齐;`id-check` 未受影响(本笔零编号)。本笔零代码,且此刻两条道正在写 `Drivers/BSP/UI/` 与 `App/algo/`,故只提这一只文档文件。 --- docs/门禁说明/mem-budget.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/门禁说明/mem-budget.md b/docs/门禁说明/mem-budget.md index 60ad24f0..079c02ac 100644 --- a/docs/门禁说明/mem-budget.md +++ b/docs/门禁说明/mem-budget.md @@ -74,6 +74,13 @@ RAM 预算门禁 FAIL:RW_CCM 占用 92.3% > 92%(阈值 92%) 6. 阈值/配额改动没有双人复核机制,改 `QUOTAS` 或 `THRESHOLD_PCT` 只靠提交说明约束。 7. 并行分支约定(Lead 裁决 2026-10-12):**分支不跑 `--write`**,台账由主干统一回填;分支上 本门与 `mem-numbers` 可能因受管快照与 `.map` 漂移而红,那不代表预算超标(处置见 §7 的 `mem-numbers` 篇)。 +8. **同码凭证在「多人同树」下必然不成立**(2026-10-27 实测):`check_size_gate.py --local` 的代码指纹取 + **git 索引里的 blob**,所以「工作区有别人在飞、尚未入索引的改动」时指纹一定对不上,报「这份源码没有被 + 真实链接测量过」——**这不是预算问题,也不拦提交**(该脚本只挂在 `scripts/ci_local.py` 的 L0c,不在 51 条 + pre-commit 钩子内)。判据:报错里若同时列出「未入索引的文件」且那些文件正被别的任务改,就等它们入库后 + 统一 `@build` → `ram_baseline.py --update` 补凭证,**别为了把它调绿去 `git add` 别人在飞的改动**。本条写作时 + (2026-10-27 09:4x)凭证**仍是红的**:`App/protocol/iec104/iec104_comm.{c,h}` 正被通讯道改、未入索引; + 回填动作发生在该卡入库之后,届时以 `--update` 的实际输出为准,本节不预告结果。 ## 7. 豁免与基线 @@ -90,4 +97,5 @@ RAM 预算门禁 FAIL:RW_CCM 占用 92.3% > 92%(阈值 92%) | 日期 | 变更 | |---|---| +| 2026-10-27 | §6 补第 8 条:同码凭证按 **git 索引 blob** 生成,工作区有在飞改动时 `--local` 必红;该检查只在 `ci_local` 的 L0c,**不是 pre-commit 钩子**,不拦提交(成因由道G 报出、Lead 复核) | | 2026-10-23 | 首篇逐项文档(实跑:`RW_IRAM1 57.4%` / `RW_CCM 87.9%`,阈值 92%) |