From ebdf0409d289b1133d5d95c8e06c30709902f1f0 Mon Sep 17 00:00:00 2001 From: Fredrik de Groot Date: Tue, 22 Oct 2024 14:14:59 +0200 Subject: [PATCH] Add REPO_SKIP_SELF_UPDATE check in sync The command _PostRepoFetch will try to self update during repo sync. That is beneficial but adds version uncertainty, fail potential and slow downs in non-interactive scenarios. Conditionally skip the update if env variable REPO_SKIP_SELF_UPDATE is defined. A call to selfupdate works as before, meaning even with the variable set, it will run the update. Change-Id: Iab0ef55dc3d3db3cbf1ba1f506c57fbb58a504c3 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/439967 Tested-by: Fredrik de Groot Commit-Queue: Josip Sokcevic Reviewed-by: Josip Sokcevic --- docs/release-process.md | 3 +++ subcmds/sync.py | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/release-process.md b/docs/release-process.md index 8cec2b47..a8c41c52 100644 --- a/docs/release-process.md +++ b/docs/release-process.md @@ -96,6 +96,9 @@ If that tag is valid, then repo will warn and use that commit instead. If that tag cannot be verified, it gives up and forces the user to resolve. +If env variable `REPO_SKIP_SELF_UPDATE` is defined, this will +bypass the self update algorithm. + ### Force an update The `repo selfupdate` command can be used to force an immediate update. diff --git a/subcmds/sync.py b/subcmds/sync.py index 00fee776..decf559b 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py @@ -958,7 +958,9 @@ later is required to fix a server side protocol bug. if not success: err_event.set() - _PostRepoFetch(rp, opt.repo_verify) + # Call self update, unless requested not to + if os.environ.get("REPO_SKIP_SELF_UPDATE", "0") == "0": + _PostRepoFetch(rp, opt.repo_verify) if opt.network_only: # Bail out now; the rest touches the working tree. if err_event.is_set():