1. Repo 的基本结构
    Repo 包括几部分:Repo 脚本, Repo 库,Manifest 库,Project 库
    创建Repo仓库 - 图1

    2. 从 0 开始创建 repo 仓库

    1. repo 脚本:这是一个 python 脚本,用来下载 repo 和 manifest 这两个 git 库
      获取 repo 脚本,下载并修改权限
    1. curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
    2. chmod +x repo
    1. 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 工程

    1. Project 库
      Project 库,即为使用 repo 进行管理的各个子 project 的 git 仓库。
    2. 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