欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > git-repo系列教程(2) manifest 文件

git-repo系列教程(2) manifest 文件

2025/2/24 13:09:45 来源:https://blog.csdn.net/fedorayang/article/details/142447353  浏览:    关键词:git-repo系列教程(2) manifest 文件

manifest 文件

文章目录

  • manifest 文件
  • manifest文件介绍
  • 清单库manifest.git例子

manifest文件介绍

<?xml version="1.0" encoding="UTF-8"?>
<manifest><remote fetch="ssh://git@git.software.team/learn-repo" name="origin" review="http://xxx.xxx.xxx:8080"/><remote fetch="https://github.com" name="github" alias="origin"/><default remote="origin" revision="master" sync-j="4" /><project name="build" path="build"><linkfile dest="build.sh" src="build.sh"/></project><project name="docs" path="docs"><copyfile dest="README.md" src="README.md"/></project><project name="third_party/openssl" path="third_party/openssl" revision="OpenSSL_1_1_1l" /><project name="curl/curl" path="third_party/curl" remote="github" /><project name="src" path="src" revision="release" />
</manifest>
  • remote元素: remote元素可以有多个,用于存在多个git远程服务器的情况。
    • fetch:使用此remote的所有项目的Git URL前缀。 **每个项目的名称都附加到此前缀以形成用于克隆项目的实际 URL。**如果使用此remote的所有项目的前缀和manifest仓库前置一致的话,可以使用…代替。
    • name:此清单文件唯一的短名称。此处指定的名称用作每个项目的 .git/config 中的远程名称,因此可自动用于 git fetch、git remote、git pull 和 git push 等命令。
    • review:通过repo upload将评论上传到的 Gerrit 服务器的主机名。 该属性是可选的; 如果未指定,则repo upload将不起作用。
    • alias:该属性可以省略,当指定了该属性时,可以覆盖name属性设置每个项目的.git/config中的远程名称。不同remote元素的alias属性可以相同,比如不同remote元素的alias属性可以都是origin。
    • groups属性:所有的projects都属于group ”all“,如果你只想下载部分project,你可以在初始化的时候加入-g选型。
repo init -u https://android.googlesource.com/platform/manifest -g all,-notdefault,tools
#示例中的-g all,-notdefault,tools表示下载所有default的project和tools project。
  • default元素 default元素只能有一个。
    • remote:project部分不单独指定remote的话就使用default部分的。
    • revision:project部分不单独指定revision的话就使用default部分的。
    • sync-j:同步时(执行repo sync命令时)使用的并行作业数
    • sync_c:如果设置为true,则只同步指定的分支(revision 属性指定),而不是所有的ref内容
    • sync_s:如果设置为true,则会同步git的子项目
  • project元素 该部分定义了项目代码由哪些子仓库组成
    • name:相对于remote部分fetch指定的前缀的相对路径
    • path:把代码下载下来后在本地的相对于当前路径的相对路径
    • revision:是指下载下来的代码要checkout到哪个revision上,这里的revision可以是commit id、branch name、tag name,本质上都是commit id。default.xml中通常用branch name做revision,可以下载到并且checkout出该branch上最新的代码,标签和/或commit id在理论上应该有效,但尚未经过广泛测试。如果revision用commit id的话,那后面必须跟上upstream,upstream的值是个branch name。revision部分如果省略的话,就等于使用default部分定义的revision。
    • remote:前面定义的远程元素的名称。如果未提供,则使用默认元素提供的值。
  • copyfile元素 project元素的子元素,每个元素描述了一对 src-dest 文件对。同步时(即执行repo sync命令时)src文件会被拷贝到dest。通常会被用于 README 或 Makefile 或其他构建脚本。
    • dest:是相对于当前目录(执行repo init和repo sync命令的目录)的路径
    • src:是相对于project path的相对路径
  • linkfile元素 与copyfile类似,只不过不是拷贝,而是建立软连接。

清单库manifest.git例子

<?xml version="1.0" encoding="UTF-8"?>
<manifest><remote name="server" alias="origin" fetch="https://www.sample.com/git/xxx" /><remote name="home" alias="origin" fetch="http://server:3000/xxx" /><default remote="home" revision="master" sync-j="4" sync_s="ture" sync_c="false" /><project name="build_docs" path="build_docs"></project><project name="pc_sdk" path="pc_sdk"></project></manifest>
touch default.xml
git init
git add default.xml
git commit -m "first commit"
git remote add origin http://server:3000/xxx.git
git push -u origin master

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词