[摘]repo命令参考手册

Android  2024年5月8日 am9:34发布6个月前更新 91es.com站长
68 0 0

前言

本文是摘抄的,主要是需要一些repo的使用。

记录一下,方便自己查阅。

正文

repo用法的基本形式为:

repo <COMMAND> <OPTIONS>

可选项在[]中表示,例如许多命令接收一个项目列表作为参数,你可以通过一组名字或者p本地源目录的path来指定项目列表.

repo sync [<PROJECT0> <PROJECT1> <PROJECTN>]
repo sync [</PATH/TO/PROJECT0> ... </PATH/TO/PROJECTN>]

help

使用help命令可以获得最新的帮助文档,由各子命令来组织.

你也可以查看子命令的帮助

repo help <COMMAND>

init

$ repo init -u <URL> [<OPTIONS>]

在当前目录安装repo, 将创建一个.repo目录,内含源代码的git仓库和标准android manifest 文件, 同时还有一个manifest.xml文件,指向.repo/manifests/目录中的定manifest. 参数:

-u URL,指定manifest位置

-m` 选择仓库中的manifest文件,缺省为`default.xml

-b 指定revision, 如一个特定的manifest分支.

repo的其它命令需要在.repo的父目录或者某一子目录中执行

sync

repo sync [<PROJECT_LIST>]

下载新更改,并更新本地环境中的工作文件,如果不带参数,将同步所有的项目的所有文件.

当运行repo sync时,会执行以下操作:

  1. 如果之前未进行过同步,那么等同于git clone, 所有远程的分支都被复制到本地.

  2. 如果之前同步过,那么等同于:

    git remote update 
    git rebase origin/<BRANCH>

其中<branch>指当前本地目录所有的分支, 如果本地分支没有track远程分支,则不会同步.

  1. 如果rebase发生冲突, 需要使用git命令来Fix冲突,如git rebase --continue.

sync成功之后, 指定项目中的代码更新到最新.

选项:

-d 将指定的项目切换回指定的manifest revision, 当项目处于topic分支,但需要manifest revision时有用

-s sync到一个已知的良好的build, 由当前manifest中的manifest-server元素指定.

-f 当某个project同步失败时继续sync

upload

repo upload [<PROJECT_LIST>]

repo会比较指定项目的本地和远程最新更新,提示你选择尚未提交的项目

选择完成以后,repo会将项目的所有commit上通过HTTPS传到gerrit,你需要设置认证信息.访问此处Password Generator可以生成一对新的username/password对.

当gerrit收到对象数据时, 会将每个commit转换为修改,这样review人员可以对每一处评论. 如果想合并commit,可以在upload前执行git rebase -i操作.

如果upload时不指定项目列表,它会搜寻所有项目更改.

如果upload之后要更改编辑,可以使用git rebase -igit commit --amend来更新本地commit,之后:

  • 确认当前branch是要提交的branch

  • 对序列中每个要提交的commit,在括号中输入gerrit修改id

# Replacing from branch foo 
[ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific...
[ 2829 ] ec18b4ba Update proto client to support patch set replacments 
# Insert change numbers in the brackets to add a new patch set.
# To create a new change record, leave the brackets empty.

上传完成后,修改将会有附加的Patch集.

diff

基于git diff, 显示commit和当前工作树的修改

repo diff [<PROJECT_LIST>]

download

repo download <TARGET> <CHANGE>

下载指定的修改并应用到工作目录中.

如download 23823号修改到本地目录platform/framworks/base/

$ repo download platform/build 23823

repo sync会移除通过download检索过的修改, 你可也以切换远程分支git checkout m/master

从Gerrit看到修改到用户可以下载,是有一小段延迟的,因为冗余备份的缘故.

forall

repo forall [<PROJECT_LIST>] -c <COMMAND>

在指定的项目中逐个执行<command>, 可以使用以下环境变量

REPO_PROJECT 设置唯一的项目名 REPO_PATH 相对client root的相对路径 REPO_REMOTE manifest中的远程系统名 REPO_LREV manifest中的revision name翻译到本地tracking分支,当需要传递manifest的revision到本地执行的git命令的使用。 REPO_RREV 等于manifest中的revision name。

选项:

-c 需要执行的命令与参数,由/bin/sh解释 -p 在显示执行结果前打印项目headers, 通过bind管道到命令的Stdin , stdout和stderr来实现 -v 显示stderr信息

prune

repo prune [<PROJECT_LIST>]

修剪/删除已经合并的topic

start

repo start <BRANCH_NAME> [<PROJECT_LIST>]

从manifest中指定的revision创建一个新分支

<BRANCH_NAME> 应该是对该分支将要做的修改的简短描述,如果不确定,应该填入分支名字。

<PROJECT_LIST> 指定哪些项目将参与此topic分支

.当前工作目录所有项目的简写

status

repo status [<PROJECT_LIST>]

将当前工作树与列表中的每个项目的HEAD所在进行比较,并以行概要的形式打印每个文件的不同。

如果只打印当前项目的diff信息,直接运行repo status

参考文章

  1. repo命令参考手册

 历史上的今天

  1. 2022: Vim的光标命令(0条评论)
  2. 2018: Source Insight 4.0安装(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

OkHttp分析之异步请求

前言前面两篇文章介绍了OKHttp的《OkHttp简单介绍之一》和《OkHttp分析之同步请求》,大概的流程都介绍了,但上一篇只介绍了同步的,因此异步的也单独介绍一下,因为这个部分线程管理的思路很不错。正文OKHttp同步请求和异步请求唯一区别点是异步请求用了线程池管理,其的都是一样的,因此...

Android NDK 部分版本下载

本文摘抄《NDK各版本下载》以便自己下载https://dl.google.com/android/repository/android-ndk-r17b-windows-x86.ziphttps://dl.google.com/android/repository/android-nd...

ListView和GridView替换滑动条图片

前言记录一下AbsListView(ListView和GridView等)替换快速滑动条的几种方式。这里设计使用Java代码和xml配置方式。记录于此,方便自己查阅。正文主要涉及AbsListView的之类的修改。一般是换肤插件需要。隐藏内容!付费阅读后才能查看!¥2 ¥3多个隐藏块...

莎士比亚:你的长夏永远不会凋谢

我怎能够把你来比拟作夏天?你不独比他可爱也比他温婉;狂风把五月宠爱的嫩蕊作践夏天出赁的期限又未免太短;天上的眼睛有时照得太酷烈,他那炳耀的金颜又常遭掩蔽;给机缘或无偿的天道所摧残,没有芳颜不终于凋残或销毁。但你的长夏将永远不会凋落,也不会损失你这皎洁...

mediaserver的启动

前言之前介绍MediaPlayer的使用,上次写过《MediaPlayer JNI层介绍》,发现很多方法都是都是# //BpMediaPlayer.prepareAsync()mPlayer->start()调用,而且BpMediaPlayer也只是代理而已,真正调用的还是另有其人。...

王蒙:永远的巴金

在这个星空之夜,巴金走了。如果设想一下近百年来最受欢迎和影响最大的一部长篇小说,我想应该是巴金的《家》。早在小时候,我的母亲与姨母就在议论鸣凤和觉慧,梅表姐和琴,觉新觉民高老太爷和老不死的冯乐山,且议且叹,如数家珍。而等到我自己迷于阅读的时候,我宁愿读《灭亡》和《新生》,因为这两本书里写了革命,...