diff options
Diffstat (limited to 'man/repo-manifest.1')
-rw-r--r-- | man/repo-manifest.1 | 545 |
1 files changed, 545 insertions, 0 deletions
diff --git a/man/repo-manifest.1 b/man/repo-manifest.1 new file mode 100644 index 00000000..e42cc42e --- /dev/null +++ b/man/repo-manifest.1 | |||
@@ -0,0 +1,545 @@ | |||
1 | .\" DO NOT MODIFY THIS FILE! It was generated by help2man. | ||
2 | .TH REPO "1" "July 2021" "repo manifest" "Repo Manual" | ||
3 | .SH NAME | ||
4 | repo \- repo manifest - manual page for repo manifest | ||
5 | .SH SYNOPSIS | ||
6 | .B repo | ||
7 | \fI\,manifest \/\fR[\fI\,-o {-|NAME.xml}\/\fR] [\fI\,-m MANIFEST.xml\/\fR] [\fI\,-r\/\fR] | ||
8 | .SH DESCRIPTION | ||
9 | Summary | ||
10 | .PP | ||
11 | Manifest inspection utility | ||
12 | .SH OPTIONS | ||
13 | .TP | ||
14 | \fB\-h\fR, \fB\-\-help\fR | ||
15 | show this help message and exit | ||
16 | .TP | ||
17 | \fB\-r\fR, \fB\-\-revision\-as\-HEAD\fR | ||
18 | save revisions as current HEAD | ||
19 | .TP | ||
20 | \fB\-m\fR NAME.xml, \fB\-\-manifest\-name\fR=\fI\,NAME\/\fR.xml | ||
21 | temporary manifest to use for this sync | ||
22 | .TP | ||
23 | \fB\-\-suppress\-upstream\-revision\fR | ||
24 | if in \fB\-r\fR mode, do not write the upstream field (only | ||
25 | of use if the branch names for a sha1 manifest are | ||
26 | sensitive) | ||
27 | .TP | ||
28 | \fB\-\-suppress\-dest\-branch\fR | ||
29 | if in \fB\-r\fR mode, do not write the dest\-branch field | ||
30 | (only of use if the branch names for a sha1 manifest | ||
31 | are sensitive) | ||
32 | .TP | ||
33 | \fB\-\-json\fR | ||
34 | output manifest in JSON format (experimental) | ||
35 | .TP | ||
36 | \fB\-\-pretty\fR | ||
37 | format output for humans to read | ||
38 | .TP | ||
39 | \fB\-o\fR \-|NAME.xml, \fB\-\-output\-file\fR=\fI\,\-\/\fR|NAME.xml | ||
40 | file to save the manifest to | ||
41 | .SS Logging options: | ||
42 | .TP | ||
43 | \fB\-v\fR, \fB\-\-verbose\fR | ||
44 | show all output | ||
45 | .TP | ||
46 | \fB\-q\fR, \fB\-\-quiet\fR | ||
47 | only show errors | ||
48 | .PP | ||
49 | Run `repo help manifest` to view the detailed manual. | ||
50 | .SH DETAILS | ||
51 | .PP | ||
52 | With the \fB\-o\fR option, exports the current manifest for inspection. The manifest | ||
53 | and (if present) local_manifests/ are combined together to produce a single | ||
54 | manifest file. This file can be stored in a Git repository for use during future | ||
55 | \&'repo init' invocations. | ||
56 | .PP | ||
57 | The \fB\-r\fR option can be used to generate a manifest file with project revisions set | ||
58 | to the current commit hash. These are known as "revision locked manifests", as | ||
59 | they don't follow a particular branch. In this case, the 'upstream' attribute is | ||
60 | set to the ref we were on when the manifest was generated. The 'dest\-branch' | ||
61 | attribute is set to indicate the remote ref to push changes to via 'repo | ||
62 | upload'. | ||
63 | .PP | ||
64 | repo Manifest Format | ||
65 | .PP | ||
66 | A repo manifest describes the structure of a repo client; that is the | ||
67 | directories that are visible and where they should be obtained from with git. | ||
68 | .PP | ||
69 | The basic structure of a manifest is a bare Git repository holding a single | ||
70 | `default.xml` XML file in the top level directory. | ||
71 | .PP | ||
72 | Manifests are inherently version controlled, since they are kept within a Git | ||
73 | repository. Updates to manifests are automatically obtained by clients during | ||
74 | `repo sync`. | ||
75 | .PP | ||
76 | [TOC] | ||
77 | .PP | ||
78 | XML File Format | ||
79 | .PP | ||
80 | A manifest XML file (e.g. `default.xml`) roughly conforms to the following DTD: | ||
81 | .PP | ||
82 | ```xml <!DOCTYPE manifest [ | ||
83 | .TP | ||
84 | <!ELEMENT manifest (notice?, | ||
85 | remote*, | ||
86 | default?, | ||
87 | manifest\-server?, | ||
88 | remove\-project*, | ||
89 | project*, | ||
90 | extend\-project*, | ||
91 | repo\-hooks?, | ||
92 | superproject?, | ||
93 | contactinfo?, | ||
94 | include*)> | ||
95 | .IP | ||
96 | <!ELEMENT notice (#PCDATA)> | ||
97 | .IP | ||
98 | <!ELEMENT remote EMPTY> | ||
99 | <!ATTLIST remote name ID #REQUIRED> | ||
100 | <!ATTLIST remote alias CDATA #IMPLIED> | ||
101 | <!ATTLIST remote fetch CDATA #REQUIRED> | ||
102 | <!ATTLIST remote pushurl CDATA #IMPLIED> | ||
103 | <!ATTLIST remote review CDATA #IMPLIED> | ||
104 | <!ATTLIST remote revision CDATA #IMPLIED> | ||
105 | .IP | ||
106 | <!ELEMENT default EMPTY> | ||
107 | <!ATTLIST default remote IDREF #IMPLIED> | ||
108 | <!ATTLIST default revision CDATA #IMPLIED> | ||
109 | <!ATTLIST default dest\-branch CDATA #IMPLIED> | ||
110 | <!ATTLIST default upstream CDATA #IMPLIED> | ||
111 | <!ATTLIST default sync\-j CDATA #IMPLIED> | ||
112 | <!ATTLIST default sync\-c CDATA #IMPLIED> | ||
113 | <!ATTLIST default sync\-s CDATA #IMPLIED> | ||
114 | <!ATTLIST default sync\-tags CDATA #IMPLIED> | ||
115 | .IP | ||
116 | <!ELEMENT manifest\-server EMPTY> | ||
117 | <!ATTLIST manifest\-server url CDATA #REQUIRED> | ||
118 | .TP | ||
119 | <!ELEMENT project (annotation*, | ||
120 | project*, | ||
121 | copyfile*, | ||
122 | linkfile*)> | ||
123 | .TP | ||
124 | <!ATTLIST project name | ||
125 | CDATA #REQUIRED> | ||
126 | .TP | ||
127 | <!ATTLIST project path | ||
128 | CDATA #IMPLIED> | ||
129 | .TP | ||
130 | <!ATTLIST project remote | ||
131 | IDREF #IMPLIED> | ||
132 | .TP | ||
133 | <!ATTLIST project revision | ||
134 | CDATA #IMPLIED> | ||
135 | .IP | ||
136 | <!ATTLIST project dest\-branch CDATA #IMPLIED> | ||
137 | <!ATTLIST project groups CDATA #IMPLIED> | ||
138 | <!ATTLIST project sync\-c CDATA #IMPLIED> | ||
139 | <!ATTLIST project sync\-s CDATA #IMPLIED> | ||
140 | <!ATTLIST project sync\-tags CDATA #IMPLIED> | ||
141 | <!ATTLIST project upstream CDATA #IMPLIED> | ||
142 | <!ATTLIST project clone\-depth CDATA #IMPLIED> | ||
143 | <!ATTLIST project force\-path CDATA #IMPLIED> | ||
144 | .IP | ||
145 | <!ELEMENT annotation EMPTY> | ||
146 | <!ATTLIST annotation name CDATA #REQUIRED> | ||
147 | <!ATTLIST annotation value CDATA #REQUIRED> | ||
148 | <!ATTLIST annotation keep CDATA "true"> | ||
149 | .IP | ||
150 | <!ELEMENT copyfile EMPTY> | ||
151 | <!ATTLIST copyfile src CDATA #REQUIRED> | ||
152 | <!ATTLIST copyfile dest CDATA #REQUIRED> | ||
153 | .IP | ||
154 | <!ELEMENT linkfile EMPTY> | ||
155 | <!ATTLIST linkfile src CDATA #REQUIRED> | ||
156 | <!ATTLIST linkfile dest CDATA #REQUIRED> | ||
157 | .IP | ||
158 | <!ELEMENT extend\-project EMPTY> | ||
159 | <!ATTLIST extend\-project name CDATA #REQUIRED> | ||
160 | <!ATTLIST extend\-project path CDATA #IMPLIED> | ||
161 | <!ATTLIST extend\-project groups CDATA #IMPLIED> | ||
162 | <!ATTLIST extend\-project revision CDATA #IMPLIED> | ||
163 | <!ATTLIST extend\-project remote CDATA #IMPLIED> | ||
164 | .IP | ||
165 | <!ELEMENT remove\-project EMPTY> | ||
166 | <!ATTLIST remove\-project name CDATA #REQUIRED> | ||
167 | <!ATTLIST remove\-project optional CDATA #IMPLIED> | ||
168 | .IP | ||
169 | <!ELEMENT repo\-hooks EMPTY> | ||
170 | <!ATTLIST repo\-hooks in\-project CDATA #REQUIRED> | ||
171 | <!ATTLIST repo\-hooks enabled\-list CDATA #REQUIRED> | ||
172 | .IP | ||
173 | <!ELEMENT superproject EMPTY> | ||
174 | <!ATTLIST superproject name CDATA #REQUIRED> | ||
175 | <!ATTLIST superproject remote IDREF #IMPLIED> | ||
176 | .IP | ||
177 | <!ELEMENT contactinfo EMPTY> | ||
178 | <!ATTLIST contactinfo bugurl CDATA #REQUIRED> | ||
179 | .IP | ||
180 | <!ELEMENT include EMPTY> | ||
181 | <!ATTLIST include name CDATA #REQUIRED> | ||
182 | <!ATTLIST include groups CDATA #IMPLIED> | ||
183 | .PP | ||
184 | ]> | ||
185 | ``` | ||
186 | .PP | ||
187 | For compatibility purposes across repo releases, all unknown elements are | ||
188 | silently ignored. However, repo reserves all possible names for itself for | ||
189 | future use. If you want to use custom elements, the `x\-*` namespace is reserved | ||
190 | for that purpose, and repo guarantees to never allocate any corresponding names. | ||
191 | .PP | ||
192 | A description of the elements and their attributes follows. | ||
193 | .PP | ||
194 | Element manifest | ||
195 | .PP | ||
196 | The root element of the file. | ||
197 | .PP | ||
198 | Element notice | ||
199 | .PP | ||
200 | Arbitrary text that is displayed to users whenever `repo sync` finishes. The | ||
201 | content is simply passed through as it exists in the manifest. | ||
202 | .PP | ||
203 | Element remote | ||
204 | .PP | ||
205 | One or more remote elements may be specified. Each remote element specifies a | ||
206 | Git URL shared by one or more projects and (optionally) the Gerrit review server | ||
207 | those projects upload changes through. | ||
208 | .PP | ||
209 | Attribute `name`: A short name unique to this manifest file. The name specified | ||
210 | here is used as the remote name in each project's .git/config, and is therefore | ||
211 | automatically available to commands like `git fetch`, `git remote`, `git pull` | ||
212 | and `git push`. | ||
213 | .PP | ||
214 | Attribute `alias`: The alias, if specified, is used to override `name` to be set | ||
215 | as the remote name in each project's .git/config. Its value can be duplicated | ||
216 | while attribute `name` has to be unique in the manifest file. This helps each | ||
217 | project to be able to have same remote name which actually points to different | ||
218 | remote url. | ||
219 | .PP | ||
220 | Attribute `fetch`: The Git URL prefix for all projects which use this remote. | ||
221 | Each project's name is appended to this prefix to form the actual URL used to | ||
222 | clone the project. | ||
223 | .PP | ||
224 | Attribute `pushurl`: The Git "push" URL prefix for all projects which use this | ||
225 | remote. Each project's name is appended to this prefix to form the actual URL | ||
226 | used to "git push" the project. This attribute is optional; if not specified | ||
227 | then "git push" will use the same URL as the `fetch` attribute. | ||
228 | .PP | ||
229 | Attribute `review`: Hostname of the Gerrit server where reviews are uploaded to | ||
230 | by `repo upload`. This attribute is optional; if not specified then `repo | ||
231 | upload` will not function. | ||
232 | .PP | ||
233 | Attribute `revision`: Name of a Git branch (e.g. `main` or `refs/heads/main`). | ||
234 | Remotes with their own revision will override the default revision. | ||
235 | .PP | ||
236 | Element default | ||
237 | .PP | ||
238 | At most one default element may be specified. Its remote and revision attributes | ||
239 | are used when a project element does not specify its own remote or revision | ||
240 | attribute. | ||
241 | .PP | ||
242 | Attribute `remote`: Name of a previously defined remote element. Project | ||
243 | elements lacking a remote attribute of their own will use this remote. | ||
244 | .PP | ||
245 | Attribute `revision`: Name of a Git branch (e.g. `main` or `refs/heads/main`). | ||
246 | Project elements lacking their own revision attribute will use this revision. | ||
247 | .PP | ||
248 | Attribute `dest\-branch`: Name of a Git branch (e.g. `main`). Project elements | ||
249 | not setting their own `dest\-branch` will inherit this value. If this value is | ||
250 | not set, projects will use `revision` by default instead. | ||
251 | .PP | ||
252 | Attribute `upstream`: Name of the Git ref in which a sha1 can be found. Used | ||
253 | when syncing a revision locked manifest in \fB\-c\fR mode to avoid having to sync the | ||
254 | entire ref space. Project elements not setting their own `upstream` will inherit | ||
255 | this value. | ||
256 | .PP | ||
257 | Attribute `sync\-j`: Number of parallel jobs to use when synching. | ||
258 | .PP | ||
259 | Attribute `sync\-c`: Set to true to only sync the given Git branch (specified in | ||
260 | the `revision` attribute) rather than the whole ref space. Project elements | ||
261 | lacking a sync\-c element of their own will use this value. | ||
262 | .PP | ||
263 | Attribute `sync\-s`: Set to true to also sync sub\-projects. | ||
264 | .PP | ||
265 | Attribute `sync\-tags`: Set to false to only sync the given Git branch (specified | ||
266 | in the `revision` attribute) rather than the other ref tags. | ||
267 | .PP | ||
268 | Element manifest\-server | ||
269 | .PP | ||
270 | At most one manifest\-server may be specified. The url attribute is used to | ||
271 | specify the URL of a manifest server, which is an XML RPC service. | ||
272 | .PP | ||
273 | The manifest server should implement the following RPC methods: | ||
274 | .IP | ||
275 | GetApprovedManifest(branch, target) | ||
276 | .PP | ||
277 | Return a manifest in which each project is pegged to a known good revision for | ||
278 | the current branch and target. This is used by repo sync when the \fB\-\-smart\-sync\fR | ||
279 | option is given. | ||
280 | .PP | ||
281 | The target to use is defined by environment variables TARGET_PRODUCT and | ||
282 | TARGET_BUILD_VARIANT. These variables are used to create a string of the form | ||
283 | $TARGET_PRODUCT\-$TARGET_BUILD_VARIANT, e.g. passion\-userdebug. If one of those | ||
284 | variables or both are not present, the program will call GetApprovedManifest | ||
285 | without the target parameter and the manifest server should choose a reasonable | ||
286 | default target. | ||
287 | .IP | ||
288 | GetManifest(tag) | ||
289 | .PP | ||
290 | Return a manifest in which each project is pegged to the revision at the | ||
291 | specified tag. This is used by repo sync when the \fB\-\-smart\-tag\fR option is given. | ||
292 | .PP | ||
293 | Element project | ||
294 | .PP | ||
295 | One or more project elements may be specified. Each element describes a single | ||
296 | Git repository to be cloned into the repo client workspace. You may specify | ||
297 | Git\-submodules by creating a nested project. Git\-submodules will be | ||
298 | automatically recognized and inherit their parent's attributes, but those may be | ||
299 | overridden by an explicitly specified project element. | ||
300 | .PP | ||
301 | Attribute `name`: A unique name for this project. The project's name is appended | ||
302 | onto its remote's fetch URL to generate the actual URL to configure the Git | ||
303 | remote with. The URL gets formed as: | ||
304 | .IP | ||
305 | ${remote_fetch}/${project_name}.git | ||
306 | .PP | ||
307 | where ${remote_fetch} is the remote's fetch attribute and ${project_name} is the | ||
308 | project's name attribute. The suffix ".git" is always appended as repo assumes | ||
309 | the upstream is a forest of bare Git repositories. If the project has a parent | ||
310 | element, its name will be prefixed by the parent's. | ||
311 | .PP | ||
312 | The project name must match the name Gerrit knows, if Gerrit is being used for | ||
313 | code reviews. | ||
314 | .PP | ||
315 | "name" must not be empty, and may not be an absolute path or use "." or ".." | ||
316 | path components. It is always interpreted relative to the remote's fetch | ||
317 | settings, so if a different base path is needed, declare a different remote with | ||
318 | the new settings needed. These restrictions are not enforced for [Local | ||
319 | Manifests]. | ||
320 | .PP | ||
321 | Attribute `path`: An optional path relative to the top directory of the repo | ||
322 | client where the Git working directory for this project should be placed. If not | ||
323 | supplied the project "name" is used. If the project has a parent element, its | ||
324 | path will be prefixed by the parent's. | ||
325 | .PP | ||
326 | "path" may not be an absolute path or use "." or ".." path components. These | ||
327 | restrictions are not enforced for [Local Manifests]. | ||
328 | .PP | ||
329 | If you want to place files into the root of the checkout (e.g. a README or | ||
330 | Makefile or another build script), use the [copyfile] or [linkfile] elements | ||
331 | instead. | ||
332 | .PP | ||
333 | Attribute `remote`: Name of a previously defined remote element. If not supplied | ||
334 | the remote given by the default element is used. | ||
335 | .PP | ||
336 | Attribute `revision`: Name of the Git branch the manifest wants to track for | ||
337 | this project. Names can be relative to refs/heads (e.g. just "main") or absolute | ||
338 | (e.g. "refs/heads/main"). Tags and/or explicit SHA\-1s should work in theory, but | ||
339 | have not been extensively tested. If not supplied the revision given by the | ||
340 | remote element is used if applicable, else the default element is used. | ||
341 | .PP | ||
342 | Attribute `dest\-branch`: Name of a Git branch (e.g. `main`). When using `repo | ||
343 | upload`, changes will be submitted for code review on this branch. If | ||
344 | unspecified both here and in the default element, `revision` is used instead. | ||
345 | .PP | ||
346 | Attribute `groups`: List of groups to which this project belongs, whitespace or | ||
347 | comma separated. All projects belong to the group "all", and each project | ||
348 | automatically belongs to a group of its name:`name` and path:`path`. E.g. for | ||
349 | `<project name="monkeys" path="barrel\-of"/>`, that project definition is | ||
350 | implicitly in the following manifest groups: default, name:monkeys, and | ||
351 | path:barrel\-of. If you place a project in the group "notdefault", it will not be | ||
352 | automatically downloaded by repo. If the project has a parent element, the | ||
353 | `name` and `path` here are the prefixed ones. | ||
354 | .PP | ||
355 | Attribute `sync\-c`: Set to true to only sync the given Git branch (specified in | ||
356 | the `revision` attribute) rather than the whole ref space. | ||
357 | .PP | ||
358 | Attribute `sync\-s`: Set to true to also sync sub\-projects. | ||
359 | .PP | ||
360 | Attribute `upstream`: Name of the Git ref in which a sha1 can be found. Used | ||
361 | when syncing a revision locked manifest in \fB\-c\fR mode to avoid having to sync the | ||
362 | entire ref space. | ||
363 | .PP | ||
364 | Attribute `clone\-depth`: Set the depth to use when fetching this project. If | ||
365 | specified, this value will override any value given to repo init with the | ||
366 | \fB\-\-depth\fR option on the command line. | ||
367 | .PP | ||
368 | Attribute `force\-path`: Set to true to force this project to create the local | ||
369 | mirror repository according to its `path` attribute (if supplied) rather than | ||
370 | the `name` attribute. This attribute only applies to the local mirrors syncing, | ||
371 | it will be ignored when syncing the projects in a client working directory. | ||
372 | .PP | ||
373 | Element extend\-project | ||
374 | .PP | ||
375 | Modify the attributes of the named project. | ||
376 | .PP | ||
377 | This element is mostly useful in a local manifest file, to modify the attributes | ||
378 | of an existing project without completely replacing the existing project | ||
379 | definition. This makes the local manifest more robust against changes to the | ||
380 | original manifest. | ||
381 | .PP | ||
382 | Attribute `path`: If specified, limit the change to projects checked out at the | ||
383 | specified path, rather than all projects with the given name. | ||
384 | .PP | ||
385 | Attribute `groups`: List of additional groups to which this project belongs. | ||
386 | Same syntax as the corresponding element of `project`. | ||
387 | .PP | ||
388 | Attribute `revision`: If specified, overrides the revision of the original | ||
389 | project. Same syntax as the corresponding element of `project`. | ||
390 | .PP | ||
391 | Attribute `remote`: If specified, overrides the remote of the original project. | ||
392 | Same syntax as the corresponding element of `project`. | ||
393 | .PP | ||
394 | Element annotation | ||
395 | .PP | ||
396 | Zero or more annotation elements may be specified as children of a project | ||
397 | element. Each element describes a name\-value pair that will be exported into | ||
398 | each project's environment during a 'forall' command, prefixed with REPO__. In | ||
399 | addition, there is an optional attribute "keep" which accepts the case | ||
400 | insensitive values "true" (default) or "false". This attribute determines | ||
401 | whether or not the annotation will be kept when exported with the manifest | ||
402 | subcommand. | ||
403 | .PP | ||
404 | Element copyfile | ||
405 | .PP | ||
406 | Zero or more copyfile elements may be specified as children of a project | ||
407 | element. Each element describes a src\-dest pair of files; the "src" file will be | ||
408 | copied to the "dest" place during `repo sync` command. | ||
409 | .PP | ||
410 | "src" is project relative, "dest" is relative to the top of the tree. Copying | ||
411 | from paths outside of the project or to paths outside of the repo client is not | ||
412 | allowed. | ||
413 | .PP | ||
414 | "src" and "dest" must be files. Directories or symlinks are not allowed. | ||
415 | Intermediate paths must not be symlinks either. | ||
416 | .PP | ||
417 | Parent directories of "dest" will be automatically created if missing. | ||
418 | .PP | ||
419 | Element linkfile | ||
420 | .PP | ||
421 | It's just like copyfile and runs at the same time as copyfile but instead of | ||
422 | copying it creates a symlink. | ||
423 | .PP | ||
424 | The symlink is created at "dest" (relative to the top of the tree) and points to | ||
425 | the path specified by "src" which is a path in the project. | ||
426 | .PP | ||
427 | Parent directories of "dest" will be automatically created if missing. | ||
428 | .PP | ||
429 | The symlink target may be a file or directory, but it may not point outside of | ||
430 | the repo client. | ||
431 | .PP | ||
432 | Element remove\-project | ||
433 | .PP | ||
434 | Deletes the named project from the internal manifest table, possibly allowing a | ||
435 | subsequent project element in the same manifest file to replace the project with | ||
436 | a different source. | ||
437 | .PP | ||
438 | This element is mostly useful in a local manifest file, where the user can | ||
439 | remove a project, and possibly replace it with their own definition. | ||
440 | .PP | ||
441 | Attribute `optional`: Set to true to ignore remove\-project elements with no | ||
442 | matching `project` element. | ||
443 | .PP | ||
444 | Element repo\-hooks | ||
445 | .PP | ||
446 | NB: See the [practical documentation](./repo\-hooks.md) for using repo hooks. | ||
447 | .PP | ||
448 | Only one repo\-hooks element may be specified at a time. Attempting to redefine | ||
449 | it will fail to parse. | ||
450 | .PP | ||
451 | Attribute `in\-project`: The project where the hooks are defined. The value must | ||
452 | match the `name` attribute (**not** the `path` attribute) of a previously | ||
453 | defined `project` element. | ||
454 | .PP | ||
455 | Attribute `enabled\-list`: List of hooks to use, whitespace or comma separated. | ||
456 | .PP | ||
457 | Element superproject | ||
458 | .PP | ||
459 | *** *Note*: This is currently a WIP. *** | ||
460 | .PP | ||
461 | NB: See the [git superprojects documentation]( | ||
462 | https://en.wikibooks.org/wiki/Git/Submodules_and_Superprojects) for background | ||
463 | information. | ||
464 | .PP | ||
465 | This element is used to specify the URL of the superproject. It has "name" and | ||
466 | "remote" as atrributes. Only "name" is required while the others have reasonable | ||
467 | defaults. At most one superproject may be specified. Attempting to redefine it | ||
468 | will fail to parse. | ||
469 | .PP | ||
470 | Attribute `name`: A unique name for the superproject. This attribute has the | ||
471 | same meaning as project's name attribute. See the [element | ||
472 | project](#element\-project) for more information. | ||
473 | .PP | ||
474 | Attribute `remote`: Name of a previously defined remote element. If not supplied | ||
475 | the remote given by the default element is used. | ||
476 | .PP | ||
477 | Element contactinfo | ||
478 | .PP | ||
479 | *** *Note*: This is currently a WIP. *** | ||
480 | .PP | ||
481 | This element is used to let manifest authors self\-register contact info. It has | ||
482 | "bugurl" as a required atrribute. This element can be repeated, and any later | ||
483 | entries will clobber earlier ones. This would allow manifest authors who extend | ||
484 | manifests to specify their own contact info. | ||
485 | .PP | ||
486 | Attribute `bugurl`: The URL to file a bug against the manifest owner. | ||
487 | .PP | ||
488 | Element include | ||
489 | .PP | ||
490 | This element provides the capability of including another manifest file into the | ||
491 | originating manifest. Normal rules apply for the target manifest to include \- it | ||
492 | must be a usable manifest on its own. | ||
493 | .PP | ||
494 | Attribute `name`: the manifest to include, specified relative to the manifest | ||
495 | repository's root. | ||
496 | .PP | ||
497 | "name" may not be an absolute path or use "." or ".." path components. These | ||
498 | restrictions are not enforced for [Local Manifests]. | ||
499 | .PP | ||
500 | Attribute `groups`: List of additional groups to which all projects in the | ||
501 | included manifest belong. This appends and recurses, meaning all projects in | ||
502 | sub\-manifests carry all parent include groups. Same syntax as the corresponding | ||
503 | element of `project`. | ||
504 | .PP | ||
505 | Local Manifests | ||
506 | .PP | ||
507 | Additional remotes and projects may be added through local manifest files stored | ||
508 | in `$TOP_DIR/.repo/local_manifests/*.xml`. | ||
509 | .PP | ||
510 | For example: | ||
511 | .IP | ||
512 | \f(CW$ ls .repo/local_manifests\fR | ||
513 | .IP | ||
514 | local_manifest.xml | ||
515 | another_local_manifest.xml | ||
516 | .IP | ||
517 | \f(CW$ cat .repo/local_manifests/local_manifest.xml\fR | ||
518 | .IP | ||
519 | <?xml version="1.0" encoding="UTF\-8"?> | ||
520 | <manifest> | ||
521 | .IP | ||
522 | <project path="manifest" | ||
523 | .IP | ||
524 | name="tools/manifest" /> | ||
525 | .IP | ||
526 | <project path="platform\-manifest" | ||
527 | .IP | ||
528 | name="platform/manifest" /> | ||
529 | .IP | ||
530 | </manifest> | ||
531 | .PP | ||
532 | Users may add projects to the local manifest(s) prior to a `repo sync` | ||
533 | invocation, instructing repo to automatically download and manage these extra | ||
534 | projects. | ||
535 | .PP | ||
536 | Manifest files stored in `$TOP_DIR/.repo/local_manifests/*.xml` will be loaded | ||
537 | in alphabetical order. | ||
538 | .PP | ||
539 | Projects from local manifest files are added into local::<local manifest | ||
540 | filename> group. | ||
541 | .PP | ||
542 | The legacy `$TOP_DIR/.repo/local_manifest.xml` path is no longer supported. | ||
543 | .SS [copyfile]: #Element\-copyfile [linkfile]: #Element\-linkfile [Local Manifests]: | ||
544 | .PP | ||
545 | #local\-manifests | ||