summaryrefslogtreecommitdiffstats
path: root/docs/smart-sync.md
diff options
context:
space:
mode:
authorInsaf Latypov <saferif@google.com>2026-10-13 15:50:11 +0000
committergerrit-scoped@luci-project-accounts.iam.gserviceaccount.com <gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com>2026-10-19 12:20:06 -0700
commit46e9866ca0f161604bd45a0c3b7c7887c9415dcb (patch)
tree2f70f0e9b78804ee11f96f427b56066bda5e1e4f /docs/smart-sync.md
parent404aec7b53107a07f29445580f6b5e7a99419757 (diff)
downloadgit-repo-2.70.tar.gz
sync: Provide a CLI command to opt in/out of smartsync for a user.v2.70
Add a boolean `sync.smartsync` setting in the per-user repo config (~/.repoconfig/config): * true: smart sync by default, as if -s were passed. * false: never smart sync by default, even if the manifest enables it. * unset: follow the manifest default, as before. Add docs/repoconfig.md as the user facing documentation for ~/.repoconfig/config and its settings, and point smart-sync.md and the `repo sync` help at it. Bug: 569927750 Test: ./run_tests Change-Id: Ideb4119fcb5e90f8bb35c493d9e4f8bec7878b77 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/643264 Reviewed-by: Gavin Mak <gavinmak@google.com> Commit-Queue: Insaf Latypov <saferif@google.com> Tested-by: Insaf Latypov <saferif@google.com>
Diffstat (limited to 'docs/smart-sync.md')
-rw-r--r--docs/smart-sync.md16
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/smart-sync.md b/docs/smart-sync.md
index 24f37461b..905a004a0 100644
--- a/docs/smart-sync.md
+++ b/docs/smart-sync.md
@@ -204,6 +204,10 @@ still fails the sync, as before. Options that specify an explicit target or
204manifest source (such as `-t`/`--smart-tag`, `-m`/`--manifest-name` or 204manifest source (such as `-t`/`--smart-tag`, `-m`/`--manifest-name` or
205`--superproject-revision`) will also disable the default Smart Sync behavior. 205`--superproject-revision`) will also disable the default Smart Sync behavior.
206 206
207Users can override this manifest default on their workstation with the
208`sync.smartsync` user setting; see
209[Per-user default](#Per_user-default-sync_smartsync) below.
210
207### --smart-sync / -s 211### --smart-sync / -s
208 212
209Explicitly enables Smart Sync. Repo will call 213Explicitly enables Smart Sync. Repo will call
@@ -231,6 +235,18 @@ match the settings Android build environments automatically setup.
231Explicitly disables Smart Sync, overriding any `sync-smartsync="true"` setting 235Explicitly disables Smart Sync, overriding any `sync-smartsync="true"` setting
232declared in the manifest `<default>` element. 236declared in the manifest `<default>` element.
233 237
238### Per-user default (sync.smartsync)
239
240A user can decide once, for all their checkouts, whether `repo sync` should
241Smart Sync by default by setting the boolean `sync.smartsync` key in their
242[per-user repo config](./repoconfig.md#smartsync).
243
244Command line flags (`-s`, `--no-smart-sync`, `-t`) override the user setting,
245which in turn overrides the manifest's `sync-smartsync` default. A Smart Sync
246enabled this way is treated as an explicit request, so it is subject to the
247same restrictions as `-s` and fails the sync if no manifest can be obtained
248from the server instead of silently falling back to ToT.
249
234### --smart-tag=TAG / -t 250### --smart-tag=TAG / -t
235 251
236Repo will call `GetManifest(TAG)`. 252Repo will call `GetManifest(TAG)`.