summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--command.py5
-rw-r--r--manifest_xml.py6
-rw-r--r--subcmds/forall.py5
-rw-r--r--subcmds/list.py5
4 files changed, 17 insertions, 4 deletions
diff --git a/command.py b/command.py
index 207ef46b..38cacd3b 100644
--- a/command.py
+++ b/command.py
@@ -126,7 +126,7 @@ class Command(object):
126 pass 126 pass
127 return project 127 return project
128 128
129 def GetProjects(self, args, missing_ok=False, submodules_ok=False): 129 def GetProjects(self, args, groups='', missing_ok=False, submodules_ok=False):
130 """A list of projects that match the arguments. 130 """A list of projects that match the arguments.
131 """ 131 """
132 all_projects_list = self.manifest.projects 132 all_projects_list = self.manifest.projects
@@ -134,7 +134,8 @@ class Command(object):
134 134
135 mp = self.manifest.manifestProject 135 mp = self.manifest.manifestProject
136 136
137 groups = mp.config.GetString('manifest.groups') 137 if not groups:
138 groups = mp.config.GetString('manifest.groups')
138 if not groups: 139 if not groups:
139 groups = 'default,platform-' + platform.system().lower() 140 groups = 'default,platform-' + platform.system().lower()
140 groups = [x for x in re.split(r'[,\s]+', groups) if x] 141 groups = [x for x in re.split(r'[,\s]+', groups) if x]
diff --git a/manifest_xml.py b/manifest_xml.py
index 130e17c2..7e719600 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -202,6 +202,9 @@ class XmlManifest(object):
202 if d.revisionExpr: 202 if d.revisionExpr:
203 have_default = True 203 have_default = True
204 e.setAttribute('revision', d.revisionExpr) 204 e.setAttribute('revision', d.revisionExpr)
205 if d.destBranchExpr:
206 have_default = True
207 e.setAttribute('dest-branch', d.destBranchExpr)
205 if d.sync_j > 1: 208 if d.sync_j > 1:
206 have_default = True 209 have_default = True
207 e.setAttribute('sync-j', '%d' % d.sync_j) 210 e.setAttribute('sync-j', '%d' % d.sync_j)
@@ -267,6 +270,9 @@ class XmlManifest(object):
267 if p.upstream and p.upstream != p.revisionExpr: 270 if p.upstream and p.upstream != p.revisionExpr:
268 e.setAttribute('upstream', p.upstream) 271 e.setAttribute('upstream', p.upstream)
269 272
273 if p.dest_branch and p.dest_branch != d.destBranchExpr:
274 e.setAttribute('dest-branch', p.dest_branch)
275
270 for c in p.copyfiles: 276 for c in p.copyfiles:
271 ce = doc.createElement('copyfile') 277 ce = doc.createElement('copyfile')
272 ce.setAttribute('src', c.src) 278 ce.setAttribute('src', c.src)
diff --git a/subcmds/forall.py b/subcmds/forall.py
index b93cd6d0..96dc99d1 100644
--- a/subcmds/forall.py
+++ b/subcmds/forall.py
@@ -120,6 +120,9 @@ without iterating through the remaining projects.
120 p.add_option('-r', '--regex', 120 p.add_option('-r', '--regex',
121 dest='regex', action='store_true', 121 dest='regex', action='store_true',
122 help="Execute the command only on projects matching regex or wildcard expression") 122 help="Execute the command only on projects matching regex or wildcard expression")
123 p.add_option('-g', '--groups',
124 dest='groups',
125 help="Execute the command only on projects matching the specified groups")
123 p.add_option('-c', '--command', 126 p.add_option('-c', '--command',
124 help='Command (and arguments) to execute', 127 help='Command (and arguments) to execute',
125 dest='command', 128 dest='command',
@@ -213,7 +216,7 @@ without iterating through the remaining projects.
213 self.manifest.Override(smart_sync_manifest_path) 216 self.manifest.Override(smart_sync_manifest_path)
214 217
215 if not opt.regex: 218 if not opt.regex:
216 projects = self.GetProjects(args) 219 projects = self.GetProjects(args, groups=opt.groups)
217 else: 220 else:
218 projects = self.FindProjects(args) 221 projects = self.FindProjects(args)
219 222
diff --git a/subcmds/list.py b/subcmds/list.py
index 945c28d8..ca51c5f7 100644
--- a/subcmds/list.py
+++ b/subcmds/list.py
@@ -35,6 +35,9 @@ This is similar to running: repo forall -c 'echo "$REPO_PATH : $REPO_PROJECT"'.
35 p.add_option('-r', '--regex', 35 p.add_option('-r', '--regex',
36 dest='regex', action='store_true', 36 dest='regex', action='store_true',
37 help="Filter the project list based on regex or wildcard matching of strings") 37 help="Filter the project list based on regex or wildcard matching of strings")
38 p.add_option('-g', '--groups',
39 dest='groups',
40 help="Filter the project list based on the groups the project is in")
38 p.add_option('-f', '--fullpath', 41 p.add_option('-f', '--fullpath',
39 dest='fullpath', action='store_true', 42 dest='fullpath', action='store_true',
40 help="Display the full work tree path instead of the relative path") 43 help="Display the full work tree path instead of the relative path")
@@ -62,7 +65,7 @@ This is similar to running: repo forall -c 'echo "$REPO_PATH : $REPO_PROJECT"'.
62 sys.exit(1) 65 sys.exit(1)
63 66
64 if not opt.regex: 67 if not opt.regex:
65 projects = self.GetProjects(args) 68 projects = self.GetProjects(args, groups=opt.groups)
66 else: 69 else:
67 projects = self.FindProjects(args) 70 projects = self.FindProjects(args)
68 71