Files
BakNRet/docs/adr/0003-no-7z-update-mode.md
T
Shuery 3a3a57a6a1 docs: 决策记录 8 条、变更日志、README 的验收与口令两节
0007 与 0008 是本次改造新产生的决策(原计划 6 条)。它们同样满足「后人会问为什么」:把运行锁改成互斥体、或给库里 27 个函数补上 SupportsShouldProcess,都是看起来更规范的错法。

CHANGELOG.md:把 README 里那 33 行「相对旧版修了什么」整节搬过去,并补上本次改造的记录(11 条修复 + 6 条结构与规范,每条修复都写明现象与现状)。README 那一节换成指针。

README 新增两节:「验收与静态分析」(六个层次、Run-RealSmoke 为什么独立存在、以及那 6 条格式规则默认 Disabled 这个容易漏掉的事实);「口令放在哪里」(默认留空不是遗漏,附迁移与验证命令)。

.markdownlint.json 照 PowerShell 主仓库的实践(default true、行长 240),只把 MD024 从关闭改成「仅同级不重复」,因为变更日志需要重复标题。顺带按 .editorconfig 把 .md 的 BOM 去掉。
2026-09-27 10:01:54 +08:00

10 lines
614 B
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.
# 不使用 7z 的更新模式(`u`),每次都从零打包
7z 默认是固实压缩,`u` 更新本来就要重压大部分数据,收益极小;但它让两件事**永远无法生效**:
排除规则的改动,以及源目录里已删除的文件。旧归档会一直留着已被删掉的东西,而用户以为
排除规则改了。
所以每次都从零打包到临时文件、校验通过再原子替换。代价是大归档每次都要重压一遍
(`Scoop` 那份 4.6 GB 就是最明显的例子),换来的是"归档内容 = 当前清单与规则的结果"这条
可验证的等价关系。