repostack pull
根据 repostack.yaml 的定义,clone 本地缺失的 repo。
repostack pull
执行流程
加载配置- 读取
repostack.yaml 和 .repostackrc(如果启用了用户配置)。
repostack.yaml 和 .repostackrc(如果启用了用户配置)。遍历 repos- 对
config.repos 中的每一个 repo:
- 计算目标路径:
join(root, repo.path)。 - 如果目标路径已存在(无论是否为空、是否为 Git 仓库),直接跳过。
- 如果目标路径不存在,执行
git clone <source> <destination>。
config.repos 中的每一个 repo:
- 计算目标路径:
join(root, repo.path)。 - 如果目标路径已存在(无论是否为空、是否为 Git 仓库),直接跳过。
- 如果目标路径不存在,执行
git clone <source> <destination>。
涉及文件
| 文件 | 操作 |
|---|---|
repostack.yaml | 读取 |
.repostackrc | 读取(如启用用户) |
<repo.path> 目录 | 创建(通过 git clone) |
Git 操作
git clone <source> <destination>(仅针对缺失目录)
错误与边界情况
- 如果
repostack.yaml中定义了users但当前未选择用户,命令立即中断。 git clone失败(网络问题、无效 source 等)会直接抛出异常。- 已存在的目录不做任何验证:即使里面是一个空文件夹或错误的仓库,也会直接跳过。
适用场景
- 新成员首次设置开发环境
- 恢复缺失的 repo
示例
repostack pull