From 2ae44d7029fd435be96ba48eb1e367241c36c940 Mon Sep 17 00:00:00 2001 From: Raman Tenneti Date: Tue, 23 Mar 2021 15:12:27 -0700 Subject: [PATCH] sync: imply -c if --use-superproject option is used. Tested the code with the following commands. $ ./run_tests -v Bug: [google internal] b/183232698 Bug: https://crbug.com/gerrit/13707 $ repo_dev init -u sso://android.git.corp.google.com/platform/manifest -b master --partial-clone --clone-filter=blob:limit=10M --repo-rev=main --use-superproject $ repo_dev sync --use-superproject $ repo_dev sync real 0m8.046s user 0m2.866s sys 0m2.457s Second time repo sync took only 8 seconds and verified by printing that urrent_branch_only is True in project.py's Sync_NetworkHalf function. Change-Id: Ic48efb23ea427dfa36e12a5c49973d6ae776d818 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/301182 Tested-by: Raman Tenneti Reviewed-by: Mike Frysinger --- subcmds/sync.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/subcmds/sync.py b/subcmds/sync.py index 2953ee3b..b14ad246 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py @@ -277,6 +277,16 @@ later is required to fix a server side protocol bug. branch = branch[len(R_HEADS):] return branch + def _UseSuperproject(self, opt): + """Returns True if use-superproject option is enabled""" + return (opt.use_superproject or + self.manifest.manifestProject.config.GetBoolean( + 'repo.superproject')) + + def _GetCurrentBranchOnly(self, opt): + """Returns True if current-branch or use-superproject options are enabled.""" + return opt.current_branch_only or self._UseSuperproject(opt) + def _UpdateProjectsRevisionId(self, opt, args): """Update revisionId of every project with the SHA from superproject. @@ -363,7 +373,7 @@ later is required to fix a server side protocol bug. quiet=opt.quiet, verbose=opt.verbose, output_redir=buf, - current_branch_only=opt.current_branch_only, + current_branch_only=self._GetCurrentBranchOnly(opt), force_sync=opt.force_sync, clone_bundle=opt.clone_bundle, tags=opt.tags, archive=self.manifest.IsArchive, @@ -735,7 +745,7 @@ later is required to fix a server side protocol bug. if not opt.local_only: start = time.time() success = mp.Sync_NetworkHalf(quiet=opt.quiet, verbose=opt.verbose, - current_branch_only=opt.current_branch_only, + current_branch_only=self._GetCurrentBranchOnly(opt), force_sync=opt.force_sync, tags=opt.tags, optimized_fetch=opt.optimized_fetch, @@ -830,9 +840,7 @@ later is required to fix a server side protocol bug. else: self._UpdateManifestProject(opt, mp, manifest_name) - if (opt.use_superproject or - self.manifest.manifestProject.config.GetBoolean( - 'repo.superproject')): + if self._UseSuperproject(opt): manifest_name = self._UpdateProjectsRevisionId(opt, args) if self.gitc_manifest: