repo xml语法

Repo XML 语法详解

Repo 是 Google 为管理多个 Git 仓库而开发的工具,其配置文件使用 XML 格式。最近搞项目,也是刚接触这个,中途查资料学习了一下,这里记录一下:

1. 基本结构

Repo 的清单文件(manifest)通常命名为 default.xml ,基本结构如下:

c 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <!-- 远程仓库定义 -->
  <remote name="origin" fetch="https://android.googlesource.com"  />
  
  <!-- 默认设置 -->
  <default revision="master" remote="origin" sync-j="4" />
  
  <!-- 项目定义 -->
  <project path="build/make" name="platform/build/make" />
</manifest>

2. 主要元素

2.1 remote 元素

定义远程 Git 仓库:

c 复制代码
<remote name="唯一名称" 
        fetch="仓库URL前缀" 
        review="代码审查服务器URL" 
        revision="默认分支" 
        pushurl="推送URL(可选)"/>

2.2 default 元素

设置默认值,会被各项目继承:

c 复制代码
<default remote="默认远程名称" 
         revision="默认分支/标签" 
         sync-j="并行同步线程数"
         sync-c="是否同步标签(布尔值)"
         sync-s="是否同步子模块(布尔值)"/>

2.3 project 元素

定义要管理的 Git 项目:

c 复制代码
<project path="本地路径" 
         name="远程仓库相对路径" 
         remote="远程名称(可选)" 
         revision="分支/标签/SHA1(可选)"
         groups="分组列表(逗号分隔)"
         sync-c="是否同步标签(可选)"
         sync-s="是否同步子模块(可选)"
         clone-depth="克隆深度(可选)"/>

3. 高级特性

3.1 包含其他清单文件

c 复制代码
<include name="another_manifest.xml"  />

3.2 扩展项目

c 复制代码
<extend-project name="已有项目路径" 
               revision="新分支" 
               groups="新增分组"
               remote="新远程"/>

3.3 移除项目

c 复制代码
<remove-project name="要移除的项目路径" />

3.4 注解元素

c 复制代码
<annotation name="注解名称" 
           value="注解值" 
           keep="是否保留(可选)"/>
  1. 完整示例
c 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote name="aosp" fetch="https://android.googlesource.com"  />
  <remote name="github" fetch="https://github.com"  />
  
  <default remote="aosp" revision="android-12.0.0_r1" sync-j="4" />
  
  <project path="build/make" name="platform/build/make" />
  
  <project path="frameworks/base" name="platform/frameworks/base" 
           revision="android-12.0.0_r2" groups="pdk,cts" />
           
  <project path="external/openssl" name="external/openssl" 
           remote="github" revision="OpenSSL_1_1_1-stable" />
           
  <include name="custom_projects.xml"  />
  <!-- 注释  -->
  <annotation name="BUILD_ID" value="SQ1A.211205.008" />
</manifest>

6. 注意事项

default元素只能有一个

路径使用 Unix 风格斜杠(/)

元素和属性名称区分大小写

注释格式:

c 复制代码
<!-- 注释  -->
<include name="custom_projects.xml"  />

特殊字符需使用 XML 实体编码

清单文件通常保存在 .repo/manifests/ 目录下

Repo XML 语法简洁但功能强大,能够高效管理复杂项目的多仓库依赖关系。

相关推荐
前网易架构师-高司机21 小时前
带标注的扑克牌识别数据集,识别率99.5%,3083张图,支持yolo,coco json,voc xml,文末有模型训练代码
xml·yolo·json·数据集·数字·扑克牌·纸牌
执明wa2 天前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
IT_Octopus4 天前
一次由 RestTemplate 引发的 Connection reset:被 XML 截胡的请求体
xml·java·spring boot
Dontla4 天前
网站爬虫控制策略介绍(robots.txt、sitemap.xml、x-robots-tag、noindex、nofollow)网站索引
xml·爬虫·dubbo
风起洛阳@不良使5 天前
spring中xml和注解开发的对比
xml·java·spring
Mikowoo0076 天前
批量汇总XML格式的发票信息
xml·python
逃逸线LOF6 天前
xml文件如何加载properties文件(spring容器加载properties文件)
xml
前网易架构师-高司机9 天前
带标注的山体滑坡塌方数据集数据集,识别率78.1%,974张图,支持yolo,coco json,voc xml,文末有模型训练代码
xml·yolo·json·数据集·自然灾害·山体滑坡
程序媛kelly9 天前
.xml / .jrxml 文件怎么打开?OpenFiles 实测预览、编辑、搜索与 AI 摘要排查流程
xml·人工智能·jrxml
潘潘的嵌入式日记9 天前
改完Keil工程文件被缓存覆盖?——uvprojx编辑的进阶四坑
xml·嵌入式·keil·调试·mdk·工程文件