Skip to content

文件系统归档目标(tar.gz / git bundle) #13

@yangflow

Description

@yangflow

问题

部分用户的需求是"代码冷备到外接硬盘 / NAS / 光盘",不需要一个可运行的 git 仓库。当前 GitRelay 的 dst 必须是 git remote,无法满足离线归档场景。

建议改动

  • AddEditRepoSheet 的 target 类型下拉新增 filesystem
  • 目标参数:选文件夹路径 + 归档格式(tar.gz / zip / git bundle)
  • 同步时:
    1. 更新本地 bare mirror(现有逻辑)
    2. 按配置的文件名模板({name}-{date}.tar.gz)压缩/打包
    3. 可选 retention:只保留最近 N 份,旧的自动清理
  • 进度条反映归档阶段(大仓库压缩耗时明显)

备选方案

  • launchd + shell 脚本调用 git bundle:用户自己写,维护成本高
  • 依赖 Time Machine 备份 bare clone 目录:受限于 Time Machine 策略,粒度差

作用域检查

  • 与 GitRelay 的单向镜像模型兼容(dst 从 git URL 扩展到 file://)
  • 不需要在 Keychain 以外存储凭证
  • 不引入新运行时依赖(tar / zip / git bundle 均为系统自带)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions