Support <remove-project name="X"> in manifest to remove/replace X
The manifest files now permit removing a project so the user can
either keep it out of their client, or replace it with a different
project using an entirely different configuration.
Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/manifest.py b/manifest.py
index 9137371..32a7e51 100644
--- a/manifest.py
+++ b/manifest.py
@@ -138,6 +138,16 @@
self.manifestFile
for node in config.childNodes:
+ if node.nodeName == 'remove-project':
+ name = self._reqatt(node, 'name')
+ try:
+ del self._projects[name]
+ except KeyError:
+ raise ManifestParseError, \
+ 'project %s not found' % \
+ (name)
+
+ for node in config.childNodes:
if node.nodeName == 'remote':
remote = self._ParseRemote(node)
if self._remotes.get(remote.name):