summaryrefslogtreecommitdiffstats
path: root/command.py
diff options
context:
space:
mode:
authorLaMont Jones <lamontjones@google.com>2022-04-11 22:50:11 +0000
committerLaMont Jones <lamontjones@google.com>2022-05-26 00:03:37 +0000
commitbdcba7dc36f1c8e6041681eb5b3b5229c93c7c5c (patch)
treeef0dbd149d7e5cd35c4d007a5052ba42bcc1c881 /command.py
parent1d00a7e2ae64b6c08aff60c2e7ed5c2d89caf8d6 (diff)
downloadgit-repo-bdcba7dc36f1c8e6041681eb5b3b5229c93c7c5c.tar.gz
sync: add multi-manifest supportv2.26
With this change, partial syncs (sync with a project list) are again supported. If the updated manifest includes new sub manifests, download them inheriting options from the parent manifestProject. Change-Id: Id952f85df2e26d34e38b251973be26434443ff56 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/334819 Reviewed-by: Mike Frysinger <vapier@google.com> Tested-by: LaMont Jones <lamontjones@google.com>
Diffstat (limited to 'command.py')
-rw-r--r--command.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/command.py b/command.py
index 12fe4172..bd6d0817 100644
--- a/command.py
+++ b/command.py
@@ -144,11 +144,10 @@ class Command(object):
144 help=f'number of jobs to run in parallel (default: {default})') 144 help=f'number of jobs to run in parallel (default: {default})')
145 145
146 m = p.add_option_group('Multi-manifest options') 146 m = p.add_option_group('Multi-manifest options')
147 m.add_option('--outer-manifest', action='store_true', 147 m.add_option('--outer-manifest', action='store_true', default=None,
148 help='operate starting at the outermost manifest') 148 help='operate starting at the outermost manifest')
149 m.add_option('--no-outer-manifest', dest='outer_manifest', 149 m.add_option('--no-outer-manifest', dest='outer_manifest',
150 action='store_false', default=None, 150 action='store_false', help='do not operate on outer manifests')
151 help='do not operate on outer manifests')
152 m.add_option('--this-manifest-only', action='store_true', default=None, 151 m.add_option('--this-manifest-only', action='store_true', default=None,
153 help='only operate on this (sub)manifest') 152 help='only operate on this (sub)manifest')
154 m.add_option('--no-this-manifest-only', '--all-manifests', 153 m.add_option('--no-this-manifest-only', '--all-manifests',
@@ -186,6 +185,10 @@ class Command(object):
186 """Validate common options.""" 185 """Validate common options."""
187 opt.quiet = opt.output_mode is False 186 opt.quiet = opt.output_mode is False
188 opt.verbose = opt.output_mode is True 187 opt.verbose = opt.output_mode is True
188 if opt.outer_manifest is None:
189 # By default, treat multi-manifest instances as a single manifest from
190 # the user's perspective.
191 opt.outer_manifest = True
189 192
190 def ValidateOptions(self, opt, args): 193 def ValidateOptions(self, opt, args):
191 """Validate the user options & arguments before executing. 194 """Validate the user options & arguments before executing.
@@ -385,7 +388,7 @@ class Command(object):
385 opt: The command options. 388 opt: The command options.
386 """ 389 """
387 top = self.outer_manifest 390 top = self.outer_manifest
388 if opt.outer_manifest is False or opt.this_manifest_only: 391 if not opt.outer_manifest or opt.this_manifest_only:
389 top = self.manifest 392 top = self.manifest
390 yield top 393 yield top
391 if not opt.this_manifest_only: 394 if not opt.this_manifest_only: