1. Repo 的基本结构
Repo 包括几部分:Repo 脚本, Repo 库,Manifest 库,Project 库
2. 从 0 开始创建 repo 仓库
- repo 脚本:这是一个 python 脚本,用来下载 repo 和 manifest 这两个 git 库
获取 repo 脚本,下载并修改权限
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
- repo 库: repo 工具本身也是一个 git 库,包含若干 python 脚本,每个脚本对应某个 repo 命令,如 start/upload
单独获取 repo 库,在任一目录下,首先修改环境变量 REPO_URL
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
然后执行:
repo init
当前目录下的. repo/repo 即为完整的 repo 工具的 git 工程
- Project 库
Project 库,即为使用 repo 进行管理的各个子 project 的 git 仓库。 - manifest 库:记录了整个 repo 的服务器地址,默认分支,gerrit 服务器地址,各个子 project 的 git 仓库地址等信息;这些信息记录在 xml 文件中,随着时间更新,所以也形成了一个 git 库,这个 git 包含一个或者若干个 xml 文件。
创建 manifest.git 目录,并使用 git init 初始化为 git 仓库
然后添加 manifest.xml,示例如下,并使用 git add 添加到库中并提交
其中的 project 节点,根据 project 的实际路径添加
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote fetch="." name="origin" />
<default remote="origin" revision="master" sync-j="4" />
<project name="kernel/liteos_a" path="kernel/liteos_a" />
<project name="kernel/liteos_m" path="kernel/liteos_m" />
</manifest>
3. 从已有 repo 创建 repo
根据已有 repo 创建 repo,最简单的方法就是使用–mirror 参数
例如:
repo init -u https://gitee.com/openharmony/manifest.git -b master --mirror
就将远程 repo 的 master 分支镜像到了本地,此镜像仓库可以作为主仓库给其他人使用。
操作后可以发现,是否使用–mirror 参数,获取的目录结构是不一样的;使用–mirror 参数获取的目录下包含 manifest.git 目录,所以其他人就可以使用 repo init –u mirror/manifest.git 来拉取了。
参考链接:
Repo 脚本解析: https://blog.csdn.net/stoic163/article/details/78790349
Git-repo 下载: https://mirrors.tuna.tsinghua.edu.cn/help/git-repo/
开源软件下载: 清华大学开源软件镜像站
https://blog.csdn.net/qq_42933442/article/details/121858092