用户全程只记两个词——「开始」和「回滚」,文件永远可恢复。
触发条件满足其一:
7w4.net小葱技能。
不触发的情况(误触发防护):
对每一个写操作(修改/覆盖/移动/删除/新建后覆盖)执行:
.backup/ 目录(如不存在)原文件名.备份.YYYYMMDD-HHMMSS(同名同秒冲突时追加序号 -2、-3).backup/manifest.txt:
[时间] 文件:src/config.py → 备份:config.py.备份.20260618-093000
[时间] 动作:修改 3 处(第 12、45、78 行)
日志是回滚的依据,必须记录「改了哪个文件、改了什么」,否则无法精确回滚。
正常执行用户要求的修改,动作与日志保持一致。
改动完成 ✅
- 改了:src/config.py(3 处:12、45、78 行)
- 备份:.backup/config.py.备份.20260618-093000
- 不满意就说"回滚";没问题就说"结束安全模式"
已恢复到修改前 ✅
- 恢复文件:src/config.py
- 对应备份:config.py.备份.20260618-093000
- 后续修改的其它文件未受影响(如需一起回滚,说"连 xxx 一起回滚").backup/trash/(带时间戳),不真正删除| 情况 | 处理方式 |
|---|---|
| 备份失败(磁盘满、无权限) | 立即中止写操作,报告原因,绝不"先改再说" |
| 用户改完又改,连续多次 | 每次独立备份+独立日志条目,回滚时按用户选的那次 |
| 回滚会影响后来才改的文件 | 回滚前说明"该文件后来又被改过,回滚会丢失第二次修改,继续吗?" |
| .backup/ 越来越大 | 保留最近 3 份同名备份,更早的自动删除(删除前确认日志完整) |
| 用户忘了自己在安全模式 | 每次写操作前输出一行"已自动备份",让用户有感知 |
| 文件名带特殊字符/长路径 | 备份名只取文件名+时间戳,路径记录在 manifest 里 |
这个备份回滚工具功能设计很完善,能在修改文件前自动备份,出错时一键恢复,不用担心改坏了救不回来。触发机制考虑得很周到,误触发了也能识别。不过目前只有使用说明,没有实际代码,能不能用还不知道。另外只能保护代码文件,其他数据(如数据库)不在范围内。