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