|
@@ -119,6 +119,12 @@ class XmlManifest(object):
|
|
|
def Save(self, fd, peg_rev=False):
|
|
def Save(self, fd, peg_rev=False):
|
|
|
"""Write the current manifest out to the given file descriptor.
|
|
"""Write the current manifest out to the given file descriptor.
|
|
|
"""
|
|
"""
|
|
|
|
|
+ mp = self.manifestProject
|
|
|
|
|
+
|
|
|
|
|
+ groups = mp.config.GetString('manifest.groups')
|
|
|
|
|
+ if groups:
|
|
|
|
|
+ groups = re.split('[,\s]+', groups)
|
|
|
|
|
+
|
|
|
doc = xml.dom.minidom.Document()
|
|
doc = xml.dom.minidom.Document()
|
|
|
root = doc.createElement('manifest')
|
|
root = doc.createElement('manifest')
|
|
|
doc.appendChild(root)
|
|
doc.appendChild(root)
|
|
@@ -167,6 +173,10 @@ class XmlManifest(object):
|
|
|
|
|
|
|
|
for p in sort_projects:
|
|
for p in sort_projects:
|
|
|
p = self.projects[p]
|
|
p = self.projects[p]
|
|
|
|
|
+
|
|
|
|
|
+ if not p.MatchesGroups(groups):
|
|
|
|
|
+ continue
|
|
|
|
|
+
|
|
|
e = doc.createElement('project')
|
|
e = doc.createElement('project')
|
|
|
root.appendChild(e)
|
|
root.appendChild(e)
|
|
|
e.setAttribute('name', p.name)
|
|
e.setAttribute('name', p.name)
|
|
@@ -190,6 +200,9 @@ class XmlManifest(object):
|
|
|
ce.setAttribute('dest', c.dest)
|
|
ce.setAttribute('dest', c.dest)
|
|
|
e.appendChild(ce)
|
|
e.appendChild(ce)
|
|
|
|
|
|
|
|
|
|
+ if p.groups:
|
|
|
|
|
+ e.setAttribute('groups', ','.join(p.groups))
|
|
|
|
|
+
|
|
|
if self._repo_hooks_project:
|
|
if self._repo_hooks_project:
|
|
|
root.appendChild(doc.createTextNode(''))
|
|
root.appendChild(doc.createTextNode(''))
|
|
|
e = doc.createElement('repo-hooks')
|
|
e = doc.createElement('repo-hooks')
|
|
@@ -504,6 +517,12 @@ class XmlManifest(object):
|
|
|
else:
|
|
else:
|
|
|
rebase = rebase.lower() in ("yes", "true", "1")
|
|
rebase = rebase.lower() in ("yes", "true", "1")
|
|
|
|
|
|
|
|
|
|
+ groups = node.getAttribute('groups')
|
|
|
|
|
+ if groups:
|
|
|
|
|
+ groups = re.split('[,\s]+', groups)
|
|
|
|
|
+ else:
|
|
|
|
|
+ groups = None
|
|
|
|
|
+
|
|
|
if self.IsMirror:
|
|
if self.IsMirror:
|
|
|
relpath = None
|
|
relpath = None
|
|
|
worktree = None
|
|
worktree = None
|
|
@@ -520,7 +539,8 @@ class XmlManifest(object):
|
|
|
relpath = path,
|
|
relpath = path,
|
|
|
revisionExpr = revisionExpr,
|
|
revisionExpr = revisionExpr,
|
|
|
revisionId = None,
|
|
revisionId = None,
|
|
|
- rebase = rebase)
|
|
|
|
|
|
|
+ rebase = rebase,
|
|
|
|
|
+ groups = groups)
|
|
|
|
|
|
|
|
for n in node.childNodes:
|
|
for n in node.childNodes:
|
|
|
if n.nodeName == 'copyfile':
|
|
if n.nodeName == 'copyfile':
|