docs(id-check-new): 补一条盲区——--all-files 下它是空转的
本门禁自己读 git diff,不看钩子传进来的文件名:pre-commit run --all-files (也就是 ci_local.py 的 L0)把文件当全量传入、暂存区却是空的 → 它打印通过。 这与 §6 第 4 条(未跟踪文件不在扫描面)同源,但后果不同:那条只影响手工自查, 这条会让 L0 全绿被误读成「没有新编号」。写进文档,别让人踩。
This commit is contained in:
@@ -73,6 +73,9 @@
|
||||
3. **`[示例]`/`[计划]` 整行跳过**:想绕过本门禁,写个 `[示例]` 就行。这靠评审纪律,不靠机器。
|
||||
4. **未跟踪文件不在扫描面**(`git diff` 语义):手工在 `git add` 之前跑 `--worktree` 看不到新文件;
|
||||
提交时必已进暂存区,所以门禁场景不受影响。
|
||||
推论:**在 `pre-commit run --all-files`(`ci_local.py` 的 L0)下它是空转的**——
|
||||
那种跑法把文件当"全量"传进来,而本脚本只读暂存区 → 暂存区空 → 打印通过。
|
||||
它只在**真实提交**时才有牙;别拿 L0 全绿当"没有新编号"的证明。
|
||||
5. **算术白名单是启发式**:`SIZE-2`/`LEN-1` 这类被排除;但若某处写着一个「不在白名单的前缀 +
|
||||
连字符 + 数字」,就会误报一次——把前缀加进白名单即可,不构成误拦风险。
|
||||
6. **不校验语义**:白名单里的前缀可以拿来写任何东西(`TIM3` 合法,`TIM99` 也放行)。
|
||||
|
||||
Reference in New Issue
Block a user