-
Notifications
You must be signed in to change notification settings - Fork 72
Closed
Labels
Description
[任务描述]
为 clone 命令添加 --depth 参数。Git 的浅克隆功能允许用户只克隆指定深度的提交历史,而不是完整的提交历史。这可以显著减少克隆时间和磁盘空间占用,特别是对于大型仓库。
浅克隆的特点:
- 只获取指定深度的提交历史(如 --depth 1 只获取最新的一次提交)
- 减少网络传输数据量和本地存储空间
- 可以与 --branch 和 --single-branch 参数组合使用
[实现方案]
- 在 CloneArgs 结构体中添加 depth: Option 字段,使用 clap 解析命令行参数
- 修改 fetch_repository 函数签名,添加 depth 参数并传递到协议层
- 在 generate_upload_pack_content 函数中实现 Git 协议的 deepen 命令
- 更新所有协议客户端(HttpsClient、LocalClient、GitClient)的 fetch_objects 方法
- 编写测试用例验证基本浅克隆功能和参数组合功能:
- test_clone_with_depth() - 测试基本浅克隆(depth=1)
- test_clone_with_depth_and_branch() - 测试浅克隆与分支参数组合(depth=5)
Reactions are currently unavailable