summaryrefslogtreecommitdiffstats
path: root/subcmds/smartsync.py
diff options
context:
space:
mode:
authorRahul Yadav <yadavrah@google.com>2026-10-01 16:34:47 +0000
committergerrit-scoped@luci-project-accounts.iam.gserviceaccount.com <gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com>2026-10-14 03:30:36 -0700
commit3448df395478c2375d880e33bfc705a9ed36272b (patch)
tree4529203b698304d03297b800e28f0bf92436e4c4 /subcmds/smartsync.py
parenta110680ff3e0d3e8504edf4457dff759801ad011 (diff)
downloadgit-repo-3448df395478c2375d880e33bfc705a9ed36272b.tar.gz
sync: Add GetApprovedManifestV2 with named request options
Smart sync calls GetApprovedManifest(branch[, target]) over XML-RPC, which only supports positional arguments. Adding new request options that way does not scale. Add a GetApprovedManifestV2 method that takes a single struct of named options and returns a struct: request: {branch, target?, best_effort?} response: {success, manifest_xml?, error_message?} Servers must ignore unknown options, so new options (e.g. criteria for selecting a good build) can be added without another method. The first new option is `best_effort`. repo sets it when smart sync was enabled implicitly by the manifest's sync-smartsync="true" default rather than by -s. The server may decline a best_effort request (e.g. for rollout or cohort gating) by returning success=false. The client still owns the fallback policy: declined implicit requests fall back to a regular sync, while explicit -s requests fail as before. If the server does not implement GetApprovedManifestV2, repo falls back to the legacy GetApprovedManifest call. Bug: 545137090 Test: ./run_tests Change-Id: I9297b728df26516012cb93dffc91d39c1fb0458f Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/636623 Reviewed-by: Mike Frysinger <vapier@google.com> Commit-Queue: Rahul Yadav <yadavrah@google.com> Tested-by: Rahul Yadav <yadavrah@google.com>
Diffstat (limited to 'subcmds/smartsync.py')
0 files changed, 0 insertions, 0 deletions