mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
Add a way to override the remote using <extend-project>
This commit supports for the 'remote' attribute in <extend-project>. This avoids the need to perform a <remove-project> followed by a <project> in local manifests. Change-Id: I9f9347913337ec9d159bc264d15ce97881ae5398 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/253092 Tested-by: Kyunam Jo <kyunam.jo@gmail.com> Reviewed-by: Mike Frysinger <vapier@google.com>
This commit is contained in:
parent
e6a202f790
commit
bd0aae95f5
@ -89,6 +89,7 @@ following DTD:
|
|||||||
<!ATTLIST extend-project path CDATA #IMPLIED>
|
<!ATTLIST extend-project path CDATA #IMPLIED>
|
||||||
<!ATTLIST extend-project groups CDATA #IMPLIED>
|
<!ATTLIST extend-project groups CDATA #IMPLIED>
|
||||||
<!ATTLIST extend-project revision CDATA #IMPLIED>
|
<!ATTLIST extend-project revision CDATA #IMPLIED>
|
||||||
|
<!ATTLIST extend-project remote CDATA #IMPLIED>
|
||||||
|
|
||||||
<!ELEMENT remove-project EMPTY>
|
<!ELEMENT remove-project EMPTY>
|
||||||
<!ATTLIST remove-project name CDATA #REQUIRED>
|
<!ATTLIST remove-project name CDATA #REQUIRED>
|
||||||
@ -306,6 +307,9 @@ belongs. Same syntax as the corresponding element of `project`.
|
|||||||
Attribute `revision`: If specified, overrides the revision of the original
|
Attribute `revision`: If specified, overrides the revision of the original
|
||||||
project. Same syntax as the corresponding element of `project`.
|
project. Same syntax as the corresponding element of `project`.
|
||||||
|
|
||||||
|
Attribute `remote`: If specified, overrides the remote of the original
|
||||||
|
project. Same syntax as the corresponding element of `project`.
|
||||||
|
|
||||||
### Element annotation
|
### Element annotation
|
||||||
|
|
||||||
Zero or more annotation elements may be specified as children of a
|
Zero or more annotation elements may be specified as children of a
|
||||||
|
@ -599,6 +599,9 @@ class XmlManifest(object):
|
|||||||
if groups:
|
if groups:
|
||||||
groups = self._ParseGroups(groups)
|
groups = self._ParseGroups(groups)
|
||||||
revision = node.getAttribute('revision')
|
revision = node.getAttribute('revision')
|
||||||
|
remote = node.getAttribute('remote')
|
||||||
|
if remote:
|
||||||
|
remote = self._get_remote(node)
|
||||||
|
|
||||||
for p in self._projects[name]:
|
for p in self._projects[name]:
|
||||||
if path and p.relpath != path:
|
if path and p.relpath != path:
|
||||||
@ -607,6 +610,8 @@ class XmlManifest(object):
|
|||||||
p.groups.extend(groups)
|
p.groups.extend(groups)
|
||||||
if revision:
|
if revision:
|
||||||
p.revisionExpr = revision
|
p.revisionExpr = revision
|
||||||
|
if remote:
|
||||||
|
p.remote = remote.ToRemoteSpec(name)
|
||||||
if node.nodeName == 'repo-hooks':
|
if node.nodeName == 'repo-hooks':
|
||||||
# Get the name of the project and the (space-separated) list of enabled.
|
# Get the name of the project and the (space-separated) list of enabled.
|
||||||
repo_hooks_project = self._reqatt(node, 'in-project')
|
repo_hooks_project = self._reqatt(node, 'in-project')
|
||||||
|
Loading…
Reference in New Issue
Block a user