Repo command reference

Repo usage takes the following form:

repo COMMAND OPTIONS

Optional elements are shown in brackets [ ]. Once Repo is installed, you can get information about any command by running

repo help COMMAND

Many commands take a project list as an argument. You can specify project-list as a list of names or a list of paths to local source directories for the projects:

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

init


$ repo init -u URL [OPTIONS]

Installs Repo in the current directory. This creates a .repo/ directory that contains Git repositories for the Repo source code and the standard Android manifest files. The .repo/ directory also contains manifest.xml, which is a symlink to the selected manifest in the .repo/manifests/ directory.

Options:

  • -u: specify a URL from which to retrieve a manifest repository. The common manifest can be found at https://android.googlesource.com/platform/manifest

  • -m: select a manifest file within the repository. If no manifest name is selected, the default is default.xml.

  • -b: specify a revision, i.e., a particular manifest-branch.

Note: For all remaining Repo commands, the current working directory must either be the parent directory of .repo/ or a subdirectory of the parent directory.

sync


repo sync [PROJECT_LIST]

Downloads new changes and updates the working files in your local environment. If you run repo sync without any arguments, it will synchronize the files for all the projects.

When you run repo sync, this is what happens:

  • If the project has never been synchronized, then repo sync is equivalent to git clone. All branches in the remote repository are copied to the local project directory.

  • If the project has already been synchronized once, then repo sync is equivalent to:

    git remote update 
    git rebase origin/BRANCH

    where BRANCH is the currently checked-out branch in the local project directory. If the local branch is not tracking a branch in the remote repository, then no synchronization will occur for the project.

  • If the git rebase operation results in merge conflicts, you will need to use the normal Git commands (for example, git rebase --continue) to resolve the conflicts.

After a successful repo sync, the code in specified projects will be up to date with the code in the remote repository.

Options:

  • -d: switch specified projects back to the manifest revision. Helpful if the project is currently on a topic branch, but the manifest revision is temporarily needed.

  • -s: sync to a known good build as specified by the manifest-server element in the current manifest.

  • -f: proceed with syncing other projects even if a project fails to sync.

upload


repo upload [PROJECT_LIST]

For the specified projects, Repo compares the local branches to the remote branches updated during the last repo sync. Repo will prompt you to select one or more of the branches that have not yet been uploaded for review.

After you select one or more branches, all commits on the selected branches are transmitted to Gerrit over an HTTPS connection. You will need to configure an HTTPS password to enable upload authorization. Visit the Password Generator to generate a new username/password pair to use over HTTPS.

When Gerrit receives the object data over its server, it will turn each commit into a change so that reviewers can comment on each commit individually. To combine several "checkpoint" commits together into a single commit, use git rebase -i before you run repo upload.

If you run repo upload without any arguments, it will search all the projects for changes to upload.

To make edits to changes after they have been uploaded, you should use a tool like git rebase -i or git commit --amend to update your local commits. After your edits are complete:

  • Make sure the updated branch is the currently checked out branch.

  • Use repo upload --replace PROJECT to open the change matching editor.

  • For each commit in the series, enter the Gerrit change ID inside the brackets:

    # Replacing from branch foo 
    [3021]35f2596cRefactor part of GetUploadableBranches to lookup one specific...
    [2829] ec18b4ba Update proto client to support patch set replacments
    [3022] c99883fe Teach'repo upload --replace' how to add replacement patch se...
    # Insert change numbers in the brackets to add a new patch set.
    # To create a new change record, leave the brackets empty.

After the upload is complete the changes will have an additional Patch Set.

diff


repo diff [PROJECT_LIST]

Shows outstanding changes between commit and working tree using git diff.

download


repo download TARGET CHANGE

Downloads the specified change from the review system and makes it available in your project's local working directory.

For example, to download change 23823 into your platform/frameworks/base directory:

$ repo download platform/build 23823

A repo sync should effectively remove any commits retrieved via repo download. Or, you can check out the remote branch; e.g., git checkout m/master.

*Note: There is a slight mirroring lag between when a change is visible on the web in Gerrit and when repo download will be able to find it for all users, because of replication delays to all servers worldwide.

forall


repo forall [PROJECT_LIST]-c COMMAND

Executes the given shell command in each project. The following additional environment variables are made available by repo forall:

  • REPO_PROJECT is set to the unique name of the project.

  • REPO_PATH is the path relative to the root of the client.

  • REPO_REMOTE is the name of the remote sstem from the manifest.

  • REPO_LREV is the name of the revision from the manifest, translated to a local tracking branch. Used if you need to pass the manifest revision to a locally executed git command.

  • REPO_RREV is the name of the revision from the manifest, exactly as written in the manifest.

Options:

  • -c: command and arguments to execute. The command is evaluated through /bin/sh and any arguments after it are passed through as shell positional parameters.

  • -p: show project headers before output of the specified command. This is achieved by binding pipes to the command's stdin, stdout, and sterr streams, and piping all output into a continuous stream that is displayed in a single pager session.

  • -v: show messages the command writes to stderr.

prune


repo prune [PROJECT_LIST]

Prunes (deletes) topics that are already merged.

start


repo start BRANCH_NAME [PROJECT_LIST]

Begins a new branch for development, starting from the revision specified in the manifest.

The BRANCH_NAME argument should provide a short description of the change you are trying to make to the projects.If you don't know, consider using the name default.

The PROJECT_LIST specifies which projects will participate in this topic branch.

Note: "." is a useful shorthand for the project in the current working directory.

status


repo status [PROJECT_LIST]

Compares the working tree to the staging area (index) and the most recent commit on this branch (HEAD) in each project specified. Displays a summary line for each file where there is a difference between these three states.

To see the status for only the current branch, run repo status. The status information will be listed by project. For each file in the project, a two-letter code is used:

In the first column, an uppercase letter indicates how the staging area differs from the last committed state.

letter meaning description
- no change same in HEAD and index
A added not in HEAD, in index
M modified in HEAD, modified in index
D deleted in HEAD, not in index
R renamed not in HEAD, path changed in index
C copied not in HEAD, copied from another in index
T mode changed same content in HEAD and index, mode changed
U unmerged conflict between HEAD and index; resolution required

In the second column, a lowercase letter indicates how the working directory differs from the index.

letter meaning description
- new/unknown not in index, in work tree
m modified in index, in work tree, modified
d deleted in index, not in work tree

Repo command reference的更多相关文章

  1. Cisco IOS Debug Command Reference I through L

    debug iapp through debug ip ftp debug iapp : to begin debugging of IAPP operations(in privileged EXE ...

  2. Cisco IOS debug command reference Command A through D

    debug aaa accounting through debug auto-config debug aaa accounting : to display information on acco ...

  3. EntityFramework:EF Migrations Command Reference

    Entity Framework Migrations are handled from the package manager console in Visual Studio. The usage ...

  4. 【Linux command reference】

    ubuntu16.04安装中文输入法: https://blog.csdn.net/singleyellow/article/details/77448246 ubuntu16.04 用vi编辑代码, ...

  5. Cisco IOS Software Activation Command Reference

    clear license agent : to clear license agent statistics counters or connection statistics (in privil ...

  6. Cisco IOS basic system management command reference

    absolute : to specify an absolute time for a time-range (in time-range configuration mode) no absolu ...

  7. Cisco IOS Debug Command Reference Command E through H

    debug eap through debug he-module subslot periodic debug eap : to display information about Extensib ...

  8. Unix/Linux Command Reference

  9. repo 官方教程

    参考 http://android.git.kernel.org/repo http://source.android.com/source/downloading.html http://sourc ...

随机推荐

  1. HDU - 6312( 2018 Multi-University Training Contest 2)

    bryce1010模板 http://acm.hdu.edu.cn/showproblem.php?pid=6312 输出前几项,都是"Yes" #include <bits ...

  2. SSE练习:单精度浮点数组求和

    SSE(Streaming SIMD Extensions)指令是一种SIMD 指令, Intrinsics函数则是对SSE指令的函数封装,利用C语言形式来调用SIMD指令集,大大提高了易读性和可维护 ...

  3. python学习之j进程和线程:

    每个进程至少有一个线程,python因为每个线程都共用一个GIL全局锁(同时只能运行一个线程),所以不能用多线程(除非重新写C解释器),但是多进程的GIL锁各自独立可多进程. 进程与线程的区别在于一个 ...

  4. 17999 Light-bot 模拟 + kmp求循环节

    http://acm.scau.edu.cn:8000/uoj/mainMenu.html 17999 Light-bot 时间限制:1000MS  内存限制:65535K 提交次数:0 通过次数:0 ...

  5. docker命令自动安装

    docker命令自动安装 操作 操作就是执行两句脚本 curl -fsSL get.docker.com -o get-docker.sh 这句命令会在当前文件夹下下载一个get-docker.sh的 ...

  6. P1202 [USACO1.1]黑色星期五Friday the Thirteenth

    题目描述 13号又是一个星期五.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的一个周期,要求计算1900年1月1日至1900+N- ...

  7. jsp九大内置对象响应类型

     内置对象            类型request            httpServletRequestout                jspWriterresponse         ...

  8. hihocoder1766 字符串问题

    思路: 不断贪心增加即可. 实现: #include <iostream> #include <cstring> using namespace std; ][]; int m ...

  9. Idea注释参数报错,控制台乱码问题解决方法

    idea虽然工具非常好用,但是他的一些解决方法网上非常的少,有些压根没有,解决这些问题非常浪费时间 1.最近在工作中发现一个问题,使用ant打包后,控制台总是报错,提示信息还是乱码的,吓得我赶紧用回了 ...

  10. jsonwebapi请求头的设置

    Content-Type: application/x-www-form-urlencoded; charset=UTF-8