manifest: add support for revision in include
Attribute groups can now be added to manifest include, thus
all projects in an included manifest file can easily modify
default branch without modifying all projects in that manifest file.
For example,
the main manifest.xml has an include node contain revision attribute,
```
```
and the include.xml has some projects,
```
```
With this change, the final manifest will have revision="r1" for project2.
```
```
Test: added unit tests to cover the inheritance
Change-Id: I4b8547a7198610ec3a3c6aeb2136e0c0f3557df0
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/369714
Reviewed-by: Mike Frysinger
Commit-Queue: Shuchuan Zeng
Tested-by: Shuchuan Zeng
diff --git a/docs/manifest-format.md b/docs/manifest-format.md
index bcdf5a8..edcb28cbd 100644
--- a/docs/manifest-format.md
+++ b/docs/manifest-format.md
@@ -125,8 +125,9 @@
-
-
+
+
+
]>
```
@@ -553,6 +554,9 @@
all projects in included manifests carry all parent include groups.
Same syntax as the corresponding element of `project`.
+Attribute `revision`: Name of a Git branch (e.g. `main` or `refs/heads/main`)
+default to which all projects in the included manifest belong.
+
## Local Manifests {#local-manifests}
Additional remotes and projects may be added through local manifest