mirror of
https://gerrit.googlesource.com/git-repo
synced 2025-01-20 16:14:25 +00:00
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>
This commit is contained in:
parent
2896a79120
commit
03eaf07ec6
@ -22,6 +22,7 @@ following DTD:
|
|||||||
<!DOCTYPE manifest [
|
<!DOCTYPE manifest [
|
||||||
<!ELEMENT manifest (remote*,
|
<!ELEMENT manifest (remote*,
|
||||||
default?,
|
default?,
|
||||||
|
remove-project*,
|
||||||
project*,
|
project*,
|
||||||
add-remote*)>
|
add-remote*)>
|
||||||
|
|
||||||
@ -47,6 +48,9 @@ following DTD:
|
|||||||
<!ATTLIST add-remote fetch CDATA #REQUIRED>
|
<!ATTLIST add-remote fetch CDATA #REQUIRED>
|
||||||
<!ATTLIST add-remote review CDATA #IMPLIED>
|
<!ATTLIST add-remote review CDATA #IMPLIED>
|
||||||
<!ATTLIST add-remote project-name CDATA #IMPLIED>
|
<!ATTLIST add-remote project-name CDATA #IMPLIED>
|
||||||
|
|
||||||
|
<!ELEMENT remove-project (EMPTY)>
|
||||||
|
<!ATTLIST remove-project name CDATA #REQUIRED>
|
||||||
]>
|
]>
|
||||||
|
|
||||||
A description of the elements and their attributes follows.
|
A description of the elements and their attributes follows.
|
||||||
@ -155,6 +159,18 @@ the majority of the project's object database to be obtained through
|
|||||||
these additional remotes.
|
these additional remotes.
|
||||||
|
|
||||||
|
|
||||||
|
Element remove-project
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Deletes the named project from the internal manifest table, possibly
|
||||||
|
allowing a subsequent project element in the same manifest file to
|
||||||
|
replace the project with a different source.
|
||||||
|
|
||||||
|
This element is mostly useful in the local_manifest.xml, where
|
||||||
|
the user can remove a project, and possibly replace it with their
|
||||||
|
own definition.
|
||||||
|
|
||||||
|
|
||||||
Local Manifest
|
Local Manifest
|
||||||
==============
|
==============
|
||||||
|
|
||||||
|
10
manifest.py
10
manifest.py
@ -137,6 +137,16 @@ class Manifest(object):
|
|||||||
"no <manifest> in %s" % \
|
"no <manifest> in %s" % \
|
||||||
self.manifestFile
|
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:
|
for node in config.childNodes:
|
||||||
if node.nodeName == 'remote':
|
if node.nodeName == 'remote':
|
||||||
remote = self._ParseRemote(node)
|
remote = self._ParseRemote(node)
|
||||||
|
Loading…
Reference in New Issue
Block a user