diff --git a/docs/manifest-format.md b/docs/manifest-format.md index 7c0a7da9..6e671080 100644 --- a/docs/manifest-format.md +++ b/docs/manifest-format.md @@ -281,6 +281,9 @@ with the new settings needed. If not supplied the remote and project for this manifest will be used: `remote` cannot be supplied. +Projects from a submanifest and its submanifests are added to the +submanifest::path: group. + Attribute `manifest-name`: The manifest filename in the manifest project. If not supplied, `default.xml` is used. diff --git a/manifest_xml.py b/manifest_xml.py index 7a4eb1e8..fa3e1034 100644 --- a/manifest_xml.py +++ b/manifest_xml.py @@ -36,6 +36,8 @@ LOCAL_MANIFESTS_DIR_NAME = 'local_manifests' SUBMANIFEST_DIR = 'submanifests' # Limit submanifests to an arbitrary depth for loop detection. MAX_SUBMANIFEST_DEPTH = 8 +# Add all projects from sub manifest into a group. +SUBMANIFEST_GROUP_PREFIX = 'submanifest:' # Add all projects from local manifest into a group. LOCAL_MANIFEST_GROUP_PREFIX = 'local:' @@ -990,6 +992,8 @@ https://gerrit.googlesource.com/git-repo/+/HEAD/docs/manifest-format.md self.branch = b parent_groups = self.parent_groups + if self.path_prefix: + parent_groups = f'{SUBMANIFEST_GROUP_PREFIX}:path:{self.path_prefix},{parent_groups}' # The manifestFile was specified by the user which is why we allow include # paths to point anywhere.