diff options
author | LaMont Jones <lamontjones@google.com> | 2022-04-11 22:50:11 +0000 |
---|---|---|
committer | LaMont Jones <lamontjones@google.com> | 2022-05-26 00:03:37 +0000 |
commit | bdcba7dc36f1c8e6041681eb5b3b5229c93c7c5c (patch) | |
tree | ef0dbd149d7e5cd35c4d007a5052ba42bcc1c881 /command.py | |
parent | 1d00a7e2ae64b6c08aff60c2e7ed5c2d89caf8d6 (diff) | |
download | git-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.py | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -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: |