问题
GitRelay 为每个仓库维护本地 bare clone,长时间运行后(尤其叠加 browse 批量添加 + Release 镜像),~/.local/share/gitrelay/ 会几十上百 GB。当前没有任何清理机制,用户只能手动 rm -rf 再重建。
建议改动
- 设置项:
cacheQuotaGB: Int?(nil = 无限,例如 50GB 表示 hard cap)
- 每次成功同步后记录仓库的上次访问时间
- 超限时按 LRU 淘汰:对最久未同步的仓库执行
git gc --aggressive --prune=now(先尝试瘦身),若仍超限则删除整个 bare clone(下次同步自动重建)
- UI 显示当前占用与配额,提供"立即清理"按钮
- 单仓库级"释放空间"选项
备选方案
- 用户手动用
du / rm:不友好且危险
- 按仓库数量 cap:粒度太粗,大仓 + 小仓一视同仁不合理
作用域检查
问题
GitRelay 为每个仓库维护本地 bare clone,长时间运行后(尤其叠加 browse 批量添加 + Release 镜像),
~/.local/share/gitrelay/会几十上百 GB。当前没有任何清理机制,用户只能手动rm -rf再重建。建议改动
cacheQuotaGB: Int?(nil = 无限,例如 50GB 表示 hard cap)git gc --aggressive --prune=now(先尝试瘦身),若仍超限则删除整个 bare clone(下次同步自动重建)备选方案
du/rm:不友好且危险作用域检查