Chromium OS‎ > ‎Chromium OS Build‎ > ‎

Updating our version of `repo`

How to sync our fork of repo to upstream.


1) On your machine, clone a checkout of repo, and update our upstream-stable branch to point at upstream’s stable branch.


~$ git clone https://chromium.googlesource.com/external/repo

~$ cd repo

~/repo$ git remote add upstream https://gerrit.googlesource.com/git-repo

~/repo$ git fetch upstream

~/repo$ git checkout -b upstream-stable upstream/stable

~/repo$ git push origin upstream-stable:upstream-stable


2) The possibly hard part. Rebase any extra changes in our stable onto upstream-stable.


~/repo$ git checkout -b stable origin/stable

~/repo$ git rebase -i upstream-stable


While rebasing, remove any patches that have already been upstreamed, and fix any other merge conflicts.


3)

Option A (worse): Upload the rebased branch to stable-next


~/repo$ git checkout -b stable-next

~/repo$ git push origin stable-next:stable-next


Option B (better): Upload the patches for review for stable-next


~/repo$ git checkout -b stable-next

~/repo$ git push origin stable-next:refs/for/stable-next


Get the changes reviewed by whoever will be doing the signing in step 4, and then applied to stable-next.


4) Get somebody with a repo signing key (Googlers, see whodoinotify) to push a signed tag of stable-next with an appropriate name (such as v1.12.13-cr1)


5) Test stable-next by running some builds that use the new version of repo (by patching in a change that forces repo to use stable-next)


$ ./cbuildbot --remote --buildbot --debug -g I6fabcc63613ec1a861c1f4b7a7fb45b5b4e0bf28 x86-mario-release x86-mario-paladin master-paladin


6) Push the tested and working new version of repo our stable branch.

~/repo$ git fetch origin


Record the previous stable branch, just in case a revert is necessary.

~/repo$ git push origin stable:stable-previous --force


Now push stable-next to stable

~/repo$ git checkout origin/stable-next

~/repo$ git push origin HEAD:stable --force


7) TODO(akeshet) how to update depot_tools/
Comments