summaryrefslogtreecommitdiffstats
path: root/manifest_xml.py
diff options
context:
space:
mode:
Diffstat (limited to 'manifest_xml.py')
-rw-r--r--manifest_xml.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/manifest_xml.py b/manifest_xml.py
index 44538690..a250382f 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -119,6 +119,12 @@ class XmlManifest(object):
119 def Save(self, fd, peg_rev=False): 119 def Save(self, fd, peg_rev=False):
120 """Write the current manifest out to the given file descriptor. 120 """Write the current manifest out to the given file descriptor.
121 """ 121 """
122 mp = self.manifestProject
123
124 groups = mp.config.GetString('manifest.groups')
125 if groups:
126 groups = re.split('[,\s]+', groups)
127
122 doc = xml.dom.minidom.Document() 128 doc = xml.dom.minidom.Document()
123 root = doc.createElement('manifest') 129 root = doc.createElement('manifest')
124 doc.appendChild(root) 130 doc.appendChild(root)
@@ -167,6 +173,10 @@ class XmlManifest(object):
167 173
168 for p in sort_projects: 174 for p in sort_projects:
169 p = self.projects[p] 175 p = self.projects[p]
176
177 if not p.MatchesGroups(groups):
178 continue
179
170 e = doc.createElement('project') 180 e = doc.createElement('project')
171 root.appendChild(e) 181 root.appendChild(e)
172 e.setAttribute('name', p.name) 182 e.setAttribute('name', p.name)
@@ -190,6 +200,9 @@ class XmlManifest(object):
190 ce.setAttribute('dest', c.dest) 200 ce.setAttribute('dest', c.dest)
191 e.appendChild(ce) 201 e.appendChild(ce)
192 202
203 if p.groups:
204 e.setAttribute('groups', ','.join(p.groups))
205
193 if self._repo_hooks_project: 206 if self._repo_hooks_project:
194 root.appendChild(doc.createTextNode('')) 207 root.appendChild(doc.createTextNode(''))
195 e = doc.createElement('repo-hooks') 208 e = doc.createElement('repo-hooks')
@@ -504,6 +517,12 @@ class XmlManifest(object):
504 else: 517 else:
505 rebase = rebase.lower() in ("yes", "true", "1") 518 rebase = rebase.lower() in ("yes", "true", "1")
506 519
520 groups = node.getAttribute('groups')
521 if groups:
522 groups = re.split('[,\s]+', groups)
523 else:
524 groups = None
525
507 if self.IsMirror: 526 if self.IsMirror:
508 relpath = None 527 relpath = None
509 worktree = None 528 worktree = None
@@ -520,7 +539,8 @@ class XmlManifest(object):
520 relpath = path, 539 relpath = path,
521 revisionExpr = revisionExpr, 540 revisionExpr = revisionExpr,
522 revisionId = None, 541 revisionId = None,
523 rebase = rebase) 542 rebase = rebase,
543 groups = groups)
524 544
525 for n in node.childNodes: 545 for n in node.childNodes:
526 if n.nodeName == 'copyfile': 546 if n.nodeName == 'copyfile':