docs(deploy-drift): 删掉两组互相矛盾的"写点计数",改写成口径 + 理由

pi 逐处数出来的(我复核确认):同一份文件里
- `describeEnvError` 头注释写"写点有**五处**";
- `selfCheck` 头注释写"本函数共 **6 处写** = mkdtempSync×2 + writeFileSync×2 + 三处裸写"
  —— **这条自己列的式子 2+2+3 加起来是 7**。

三处说法三个数,**没有一个等于实际站点数**(实际是 mkdtempSync×2 + mkdirSync×2 +
writeFileSync×6 = **10 处**;函数体后来又长了,数字只会更旧)。

**现在一个数字都不写。** 理由与本仓库既有纪律同源("不要为此引入手抄的期望用例数
常量 —— 手抄常量会过期"):注释里的数字**无法被判据守住**,改代码时没人会回来改它们,
而"两组数字互相矛盾"比"没有数字"更糟 —— 它让读者以为有人数过。
实例就在这份文件里:依赖树夹具(第 1009 行附近)后来又加了 3 处写,谁也没回头改注释。

要判"覆盖是否完整"只能靠**机制**:整段 try/catch 保证不论哪一处抛 ENOSPC 都被翻译成
人话 —— 覆盖范围不取决于入口、也不取决于处数。这一点写进注释了。
This commit is contained in:
2026-09-14 20:24:49 +08:00
parent ebb1040559
commit a0ba10341c

View File

@ -438,8 +438,8 @@ function checkHost(spec) {
*
* ★ 为什么要有这个函数(不是为了好看,是为了**覆盖全部写点**):
*
* `selfCheck()` 里要在临时目录造两棵小树,写点有**五处**(`mk()` 里两处、
* 后面 `README.md`/`extra.mjs`/`test/t.mjs` 三处)。第一版只在 `mk()` 里包了
* `selfCheck()` 里要在临时目录造两棵小树,**写点不止一处**(`mk()` 里、
* 后面裸写的 `README.md`/`extra.mjs`/`test/t.mjs`,还有建目录那两处)。第一版只在 `mk()` 里包了
* try/catch —— 于是后面那几处撞上 ENOSPC 时,异常冒到 `main()` 的 catch,
* 退出码是对的(2),但打印的是**原始英文 `ENOSPC: no space left on device, write`
* 加一段指向本文件的堆栈** —— 也就是"看起来像检查器坏了"这个信号,**恰恰在
@ -479,9 +479,20 @@ function describeEnvError(e, what) {
* 判据(`code === 'ENOSPC'` / 消息里含 no space left)是稳定的,措辞各自合适即可。
* **若哪天出现第三份拷贝,再考虑共用** —— 两份还撑得住。
*
* 写点计数口径(免得与别处的说法对不上):本函数共 **6 处写**
* = `mkdtempSync` ×2 + `mk()` 内 `writeFileSync` ×2 + 三处裸写
* (`b/README.md`、`b/lib/extra.mjs`、`a/test/t.mjs`)。
* ★ **这里原先写了两组互相矛盾的"写点计数"**(pi 评审 2026-09-14 逐处数的):
* 上面 `describeEnvError` 的头注释写"五处",这里写"共 6 处",
* 而这条自己列的式子 `2 + 2 + 3` **加起来是 7** —— 三处说法三个数,
* 且**没有一个等于实际站点数**(实际 `mkdtempSync`×2 + `mkdirSync`×2 +
* `writeFileSync`×6 = **10 处**;函数体后来又长了,数字只会更旧)。
*
* **所以现在一个数字都不写。** 理由与本仓库那条既有纪律同源
* ("不要为此引入手抄的期望用例数常量 —— 手抄常量会过期"):
* 注释里的数字**无法被判据守住**,改代码时没人会回来改它们,
* 而"两组数字互相矛盾"比"没有数字"更糟 —— 它让读者以为有人数过。
* 实例:第 1009 行那个依赖树夹具又加了 3 处写,谁也没回头改这里。
*
* 要判"覆盖是否完整",只能靠**机制**而不是靠数数:本函数的整段 try/catch
* 保证不论哪一处抛 ENOSPC 都被翻译成人话(覆盖范围不取决于入口、不取决于处数)。
*/
export function selfCheck() {
try {