Skip to content

[r2cn-测试任务] 修复 clone 命令无法通过本地协议克隆仓库的问题 #159

@Chen-Rong-Zi

Description

@Chen-Rong-Zi

[具体描述]

  1. b325bfc./src/command/init.rs使用.libra命名的目录, e1639c3internal/protocol/local_client.rs中检查.git命名的目录
  2. internal/protocol/local_client.rs中使用git-upload-pack --advertise-refs打包object, 不适用于使用.libra命名的仓库, 且internal/protocol/mod.rs中的parse_discovered_references无法解析浅克隆的引用

[实现方案]

  1. 修改internal/protocol/local_client.rs的clone实现, 不再使用git-upload-pack --advertise-refs命令, 将使用硬链接和拷贝在目标路径下创建新的仓库
  2. 支持从.git.libra命名的仓库中克隆仓库, 从.git克隆出的仓库将会自动转换命名为.libra

[问题复现方法]

  1. 场景一, 从.git命名仓库中克隆仓库, 且原本仓库存在浅拷贝
libra clone ~/Downloads/Github/fzf libra
Image
  1. 场景二, 从.libra命名仓库中克隆仓库
cd /tmp/a
libra init /tmp/a
libra clone /tmp/a tmp/b
Image

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions