Skip to content

Latest commit

 

History

History
49 lines (33 loc) · 1.98 KB

File metadata and controls

49 lines (33 loc) · 1.98 KB

Gitsave 开发文档

当前决策

  • 自动保存暂不实现:仅保留配置入口与 UI 占位,不触发后台保存任务。
  • 自动分支检测暂不实现:不再根据回滚历史自动派生路线,分支由玩家手动创建与切换。
  • 保存安全优先:引入“存档稳定性检测”,避免快速保存抓到未完成写入的存档。

存档稳定性检测(规划)

目标:保存前确认存档文件已经稳定,减少“保存了旧数据/半写入数据”的概率。

建议流程:

  1. 扫描存档目录文件(应用 ignore 规则),记录 size + mtime
  2. 等待稳定窗口(例如 1~2 秒)后再次扫描。
  3. 若两次结果一致,认为稳定;否则最多重试 N 次。
  4. 若仍不稳定,提示用户选择:
    • 强制保存:跳过稳定检测直接保存;
    • 稍后再试:退出保存流程;
    • 取消:放弃本次保存。
  5. 稳定后执行 git add + git commit

备注:稳定检测应该是保存流程的一部分,TUI/CLI 共享同一套判断逻辑。

脏工作区保护(规划)

目标:避免玩家在未保存的情况下误触“回滚/切换路线/创建路线”造成最新存档丢失。

策略:

  • loadroute switchroute create 默认要求工作区干净。
  • 如果工作区脏,提供明确的三选一确认:
    • 保存:先执行稳定保存,再继续操作;
    • 丢弃:硬重置并清理未跟踪文件,然后继续;
    • 取消:退出操作。
  • 引入专门的“丢弃更改”操作(需二次确认)。

自动保存状态说明

  • autosave 配置仅作为占位信息(启用/间隔/最大数量),暂不触发后台保存。
  • TUI 与 CLI 仅展示配置,不会主动创建 autosave 提交或分支。

相关文件

  • gitsave/src/manager/mod.rs: ConfigManager::load_auto_save_config()
  • gitsave/src/main.rs: handle_autosave()(仅配置入口)
  • gitsave/src/cli/mod.rs: Autosave 命令定义