Release Log
v0.1.0 (2026-05-08)
首个可用版本,实现完整的 Git 仓库备份工作流。
功能特性
| 命令 | 功能 | 状态 |
|---|
git-backup init | 初始化配置、创建默认配置文件和示例仓库列表 | ✅ |
git-backup clone | 批量克隆仓库(并发控制 + 进度条 + 重试) | ✅ |
git-backup pull | 批量增量更新(并发控制 + 进度条 + 重试) | ✅ |
git-backup backup | 完整备份(自动分流 clone/pull + 历史记录) | ✅ |
git-backup pack | 打包备份为 tar.gz(进度条 + 跳过已有归档) | ✅ |
技术架构
git-backup/
├── src/
│ ├── main.rs # CLI 入口(clap),5 个子命令
│ ├── config.rs # 配置管理(TOML 序列化/验证/合并 CLI)
│ ├── logger.rs # 日志系统(tracing)
│ ├── file_io.rs # 文件 I/O(仓库列表/备份记录/目录清理)
│ ├── git_ops.rs # Git 操作(clone/pull + 重试 + 并发 + 进度)
│ ├── backup.rs # 备份流程(自动分流 + 历史管理)
│ └── packager.rs # 打包模块(tar.gz + file 过滤 + 进度条)
├── docs/ # 项目文档
└── Cargo.toml # Rust 依赖管理
关键依赖
| 依赖 | 用途 | 版本 |
|---|
| clap | CLI 框架 | 4.5 (derive) |
| tokio | 异步运行时 | 1.0 (rt-multi-thread + sync + time) |
| flate2 + tar | 压缩打包 | 1.0 / 0.4 |
| indicatif | 进度条 | 0.17 |
| tracing | 日志 | 0.1 |
| serde + toml | 配置序列化 | 1.0 / 0.8 |
测试覆盖
| 模块 | 测试数 | 覆盖内容 |
|---|
| config.rs | 11 | 默认值、验证、CLI 合并、文件存在性 |
| file_io.rs | 15 | 目录创建、仓库列表读写、备份记录、旧备份清理 |
| git_ops.rs | 10 | URL 解析、仓库名提取、.git 目录检测 |
| packager.rs | 10 | tar.gz 识别、文件收集、错误格式处理 |
| backup.rs | 2 | 仓库名提取、状态结构构造 |
| 总计 | 48 | 全部通过 |
构建验证
cargo build ✅ 成功
cargo test ✅ 48/48 通过
git-backup pack ✅ 正常工作
版本计划
| 版本 | 计划内容 | 状态 |
|---|
| v0.1.0 | 核心功能 + 阶段一单元测试 | ✅ 已发布 |
| v0.2.0 | 阶段二/三集成测试 | 📋 待实现 |