Sync the local Fuchsia source tree to a given state
usage: fx sync-to [-h|--help] <STATE>
To reproduce builds at a given repo state, or bisect bugs among a series of
checkins, this command synchronizes the local Fuchsia source tree to a given
state. The state can be specified in one of the following ways:
BUILD_ID: a large number like '8938070794014050064' (preceded or not by a
'b' letter), which is the "Build #" in a builder's "Ended builds" page,
for example:
https://luci-milo.appspot.com/p/fuchsia/builders/try/core.x64-asan
RELEASE_TAG: a string like "releases/0.20190927.1.1", representing a
git tag in the //integration repository. To find available tags, run
`git tags -l` in your local integration repository.
BRANCH_NAME: a string like "refs/heads/releases/f1", representing a
git branch (head) in the //integration repository.
JIRI_HISTORY_TIMESTAMP: a timestamp like "2019-03-21T15:30:00-07:00".
This is local to your tree, and represents a moment where you
previously ran `jiri update`. To find available timestamps, look at
files in ${FUCHSIA_DIR}/.jiri_root/update_history/
INTEGRATION_GIT_COMMIT: a 3-40 character commit hash like "e9d97d1" in the
integration repo. Can be optionally prefixed with 'git:' (e.g.
"git:e9d97d1") to disambiguate from BUILD_ID. To find valid commits,
look at your integration commit history:
git -C ${FUCHSIA_DIR}/integration log --oneline
"reset":
Use "reset" to return to the top of the tree. This is equivalent to:
git -C ${FUCHSIA_DIR}/integration checkout JIRI_HEAD && jiri update -gc
Known limitations:
- Does not work on CI builds triggered on repos other than integration (very
rare). It works on all CQ builds and all CI builds triggered by
integration.git commits.
- Does not respect `attributes`. Local attributes will not be overridden (so
the checkout may contain some extra repositories), and
attributes used by an infra build will not be reproduced
Examples:
# Sync to the source used by build https://ci.chromium.org/b/8835832080588336881
fx sync-to 8835832080588336881
# Sync to the source tagged as release 0.20210822.2.5:
fx sync-to releases/0.20210822.2.5
# Sync to the same tree updated in 2021-08-28T14:26:22-07:00 (this is
# local to your local tree - to reproduce, look for timestamps in your
# own .jiri_root/update_history directory):
fx sync-to 2021-08-28T14:26:22-07:00
# Sync to integration commit 901ed5b
# (https://fuchsia.googlesource.com/integration/+/901ed5bf7db253bb6feb4832ac1a752248e2361d):
fx sync-to 901ed5b
# Sync to release branch f1:
fx sync-to refs/heads/releases/f1
# Restore your source to the top of the tree:
fx sync-to reset