xref: /aosp_15_r20/development/tools/repo_pull/README.md (revision 90c8c64db3049935a07c6143d7fd006e26f8ecca)
1*90c8c64dSAndroid Build Coastguard WorkerRepo Pull
2*90c8c64dSAndroid Build Coastguard Worker=========
3*90c8c64dSAndroid Build Coastguard Worker
4*90c8c64dSAndroid Build Coastguard Worker`repo_pull.py` pulls multiple change lists from a Gerrit code review website.
5*90c8c64dSAndroid Build Coastguard WorkerA user may specify a query string and `repo_pull.py` will pull the matching
6*90c8c64dSAndroid Build Coastguard Workerchange lists.
7*90c8c64dSAndroid Build Coastguard Worker
8*90c8c64dSAndroid Build Coastguard WorkerFor example, to pull the `repo-pull-initial-cl` topic from AOSP, run this
9*90c8c64dSAndroid Build Coastguard Workercommand:
10*90c8c64dSAndroid Build Coastguard Worker
11*90c8c64dSAndroid Build Coastguard Worker    repo_pull.py pull 'topic:repo-pull-initial-cl' \
12*90c8c64dSAndroid Build Coastguard Worker        -g https://android-review.googlesource.com
13*90c8c64dSAndroid Build Coastguard Worker
14*90c8c64dSAndroid Build Coastguard WorkerRead [Usage](#Usages) and [Examples](#Examples) for more details.
15*90c8c64dSAndroid Build Coastguard Worker
16*90c8c64dSAndroid Build Coastguard Worker
17*90c8c64dSAndroid Build Coastguard Worker## Installation
18*90c8c64dSAndroid Build Coastguard Worker
19*90c8c64dSAndroid Build Coastguard Worker`repo_pull.py` requires `.gitcookies` to access Gerrit APIs.  Please
20*90c8c64dSAndroid Build Coastguard Workercheck whether the Gerrit Code Review URL is in `~/.gitcookies`.
21*90c8c64dSAndroid Build Coastguard Worker
22*90c8c64dSAndroid Build Coastguard WorkerIf you don't have an entry, follow these steps:
23*90c8c64dSAndroid Build Coastguard Worker
24*90c8c64dSAndroid Build Coastguard Worker1. Visit the [Gerrit Code Review](https://android-review.googlesource.com).
25*90c8c64dSAndroid Build Coastguard Worker
26*90c8c64dSAndroid Build Coastguard Worker2. Click [Settings -> HTTP Credentials](https://android-review.googlesource.com/settings/#HTTPCredentials)
27*90c8c64dSAndroid Build Coastguard Worker
28*90c8c64dSAndroid Build Coastguard Worker3. Click **Obtain password**
29*90c8c64dSAndroid Build Coastguard Worker
30*90c8c64dSAndroid Build Coastguard Worker4. Copy the highlighted shell commands and paste them in a terminal.
31*90c8c64dSAndroid Build Coastguard Worker
32*90c8c64dSAndroid Build Coastguard WorkerNote: You must repeat these for each Gerrit Code Review websites.
33*90c8c64dSAndroid Build Coastguard Worker
34*90c8c64dSAndroid Build Coastguard WorkerNote: For Googlers, please read go/repo-pull-for-google for details.
35*90c8c64dSAndroid Build Coastguard Worker
36*90c8c64dSAndroid Build Coastguard Worker
37*90c8c64dSAndroid Build Coastguard Worker## Usages
38*90c8c64dSAndroid Build Coastguard Worker
39*90c8c64dSAndroid Build Coastguard WorkerCommand line usages:
40*90c8c64dSAndroid Build Coastguard Worker
41*90c8c64dSAndroid Build Coastguard Worker    $ repo_pull.py [sub-command] [query] \
42*90c8c64dSAndroid Build Coastguard Worker                   [-g gerrit] \
43*90c8c64dSAndroid Build Coastguard Worker                   [-b local-topic-branch] \
44*90c8c64dSAndroid Build Coastguard Worker                   [-j num-threads] \
45*90c8c64dSAndroid Build Coastguard Worker                   [--limits max-num-changes]
46*90c8c64dSAndroid Build Coastguard Worker
47*90c8c64dSAndroid Build Coastguard Worker
48*90c8c64dSAndroid Build Coastguard WorkerThree sub-commands are supported:
49*90c8c64dSAndroid Build Coastguard Worker
50*90c8c64dSAndroid Build Coastguard Worker* `repo_pull.py json` prints the change lists in the JSON file format.
51*90c8c64dSAndroid Build Coastguard Worker
52*90c8c64dSAndroid Build Coastguard Worker* `repo_pull.py bash` prints the *bash commands* that can pull the change lists.
53*90c8c64dSAndroid Build Coastguard Worker
54*90c8c64dSAndroid Build Coastguard Worker* `repo_pull.py pull` *pulls the change lists* immediately.
55*90c8c64dSAndroid Build Coastguard Worker
56*90c8c64dSAndroid Build Coastguard Worker
57*90c8c64dSAndroid Build Coastguard Worker### Query String
58*90c8c64dSAndroid Build Coastguard Worker
59*90c8c64dSAndroid Build Coastguard Worker`[query]` is the query string that can be entered to the Gerrit search box.
60*90c8c64dSAndroid Build Coastguard Worker
61*90c8c64dSAndroid Build Coastguard WorkerThese are common queries:
62*90c8c64dSAndroid Build Coastguard Worker
63*90c8c64dSAndroid Build Coastguard Worker* `topic:name`
64*90c8c64dSAndroid Build Coastguard Worker* `hashtag:name`
65*90c8c64dSAndroid Build Coastguard Worker* `branch:name`
66*90c8c64dSAndroid Build Coastguard Worker* `project:name`
67*90c8c64dSAndroid Build Coastguard Worker* `owner:name`
68*90c8c64dSAndroid Build Coastguard Worker* `is:open` | `is:merged` | `is:abandoned`
69*90c8c64dSAndroid Build Coastguard Worker* `message:text`
70*90c8c64dSAndroid Build Coastguard Worker
71*90c8c64dSAndroid Build Coastguard Worker
72*90c8c64dSAndroid Build Coastguard Worker### Options
73*90c8c64dSAndroid Build Coastguard Worker
74*90c8c64dSAndroid Build Coastguard Worker* `-g` or `--gerrit` specifies the URL of the Gerrit Code Review website.
75*90c8c64dSAndroid Build Coastguard Worker
76*90c8c64dSAndroid Build Coastguard Worker* `-b` or `--branch` specifies the local branch name that will be passed to
77*90c8c64dSAndroid Build Coastguard Worker  `repo start`.
78*90c8c64dSAndroid Build Coastguard Worker
79*90c8c64dSAndroid Build Coastguard Worker* `-j` or `--parallel` specifies the number of parallel threads while pulling
80*90c8c64dSAndroid Build Coastguard Worker  change lists.
81*90c8c64dSAndroid Build Coastguard Worker
82*90c8c64dSAndroid Build Coastguard Worker* `-n` or `--limits` specifies the maximum number of change lists.  (default:
83*90c8c64dSAndroid Build Coastguard Worker  1000)
84*90c8c64dSAndroid Build Coastguard Worker
85*90c8c64dSAndroid Build Coastguard Worker* `-m` or `--merge` specifies the method to pick the merge commits.  (default:
86*90c8c64dSAndroid Build Coastguard Worker  `merge-ff-only`)
87*90c8c64dSAndroid Build Coastguard Worker
88*90c8c64dSAndroid Build Coastguard Worker* `-p` or `--pick` specifies the method to pick the non-merge commits.
89*90c8c64dSAndroid Build Coastguard Worker  (default: `pick`)
90*90c8c64dSAndroid Build Coastguard Worker
91*90c8c64dSAndroid Build Coastguard Worker  * `pick` maps to `git cherry-pick --allow-empty`
92*90c8c64dSAndroid Build Coastguard Worker  * `merge` maps to `git merge --no-edit`
93*90c8c64dSAndroid Build Coastguard Worker  * `merge-ff-only` maps to `git merge --no-edit --ff-only`
94*90c8c64dSAndroid Build Coastguard Worker  * `merge-no-ff` maps to `git merge --no-edit --no-ff`
95*90c8c64dSAndroid Build Coastguard Worker  * `reset` maps to `git reset --hard`
96*90c8c64dSAndroid Build Coastguard Worker  * `checkout` maps to `git checkout`
97*90c8c64dSAndroid Build Coastguard Worker
98*90c8c64dSAndroid Build Coastguard Worker
99*90c8c64dSAndroid Build Coastguard Worker## Examples
100*90c8c64dSAndroid Build Coastguard Worker
101*90c8c64dSAndroid Build Coastguard WorkerTo print the change lists with the topic `repo-pull-initial-cl` in JSON file
102*90c8c64dSAndroid Build Coastguard Workerformat:
103*90c8c64dSAndroid Build Coastguard Worker
104*90c8c64dSAndroid Build Coastguard Worker```
105*90c8c64dSAndroid Build Coastguard Workerrepo_pull.py json 'topic:repo-pull-initial-cl' \
106*90c8c64dSAndroid Build Coastguard Worker    -g https://android-review.googlesource.com
107*90c8c64dSAndroid Build Coastguard Worker```
108*90c8c64dSAndroid Build Coastguard Worker
109*90c8c64dSAndroid Build Coastguard WorkerTo print the bash commands that can pull the change lists, use the `bash`
110*90c8c64dSAndroid Build Coastguard Workercommand:
111*90c8c64dSAndroid Build Coastguard Worker
112*90c8c64dSAndroid Build Coastguard Worker```
113*90c8c64dSAndroid Build Coastguard Workerrepo_pull.py bash 'topic:repo-pull-initial-cl' \
114*90c8c64dSAndroid Build Coastguard Worker    -g https://android-review.googlesource.com \
115*90c8c64dSAndroid Build Coastguard Worker    -b my-local-topic-branch
116*90c8c64dSAndroid Build Coastguard Worker```
117*90c8c64dSAndroid Build Coastguard Worker
118*90c8c64dSAndroid Build Coastguard WorkerTo pull the change lists immediately, use the `pull` command:
119*90c8c64dSAndroid Build Coastguard Worker
120*90c8c64dSAndroid Build Coastguard Worker```
121*90c8c64dSAndroid Build Coastguard Workerrepo_pull.py pull 'topic:repo-pull-initial-cl' \
122*90c8c64dSAndroid Build Coastguard Worker    -g https://android-review.googlesource.com \
123*90c8c64dSAndroid Build Coastguard Worker    -b my-local-topic-branch
124*90c8c64dSAndroid Build Coastguard Worker```
125