summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/manifest-format.txt (renamed from docs/manifest_xml.txt)59
-rw-r--r--docs/manifest_submodule.txt136
2 files changed, 56 insertions, 139 deletions
diff --git a/docs/manifest_xml.txt b/docs/manifest-format.txt
index 37fbd5cd..38868f10 100644
--- a/docs/manifest_xml.txt
+++ b/docs/manifest-format.txt
@@ -25,30 +25,48 @@ following DTD:
25 default?, 25 default?,
26 manifest-server?, 26 manifest-server?,
27 remove-project*, 27 remove-project*,
28 project*)> 28 project*,
29 repo-hooks?)>
29 30
30 <!ELEMENT notice (#PCDATA)> 31 <!ELEMENT notice (#PCDATA)>
31 32
32 <!ELEMENT remote (EMPTY)> 33 <!ELEMENT remote (EMPTY)>
33 <!ATTLIST remote name ID #REQUIRED> 34 <!ATTLIST remote name ID #REQUIRED>
35 <!ATTLIST remote alias CDATA #IMPLIED>
34 <!ATTLIST remote fetch CDATA #REQUIRED> 36 <!ATTLIST remote fetch CDATA #REQUIRED>
35 <!ATTLIST remote review CDATA #IMPLIED> 37 <!ATTLIST remote review CDATA #IMPLIED>
36 38
37 <!ELEMENT default (EMPTY)> 39 <!ELEMENT default (EMPTY)>
38 <!ATTLIST default remote IDREF #IMPLIED> 40 <!ATTLIST default remote IDREF #IMPLIED>
39 <!ATTLIST default revision CDATA #IMPLIED> 41 <!ATTLIST default revision CDATA #IMPLIED>
40 42 <!ATTLIST default sync-j CDATA #IMPLIED>
43 <!ATTLIST default sync-c CDATA #IMPLIED>
44
41 <!ELEMENT manifest-server (EMPTY)> 45 <!ELEMENT manifest-server (EMPTY)>
42 <!ATTLIST url CDATA #REQUIRED> 46 <!ATTLIST url CDATA #REQUIRED>
43 47
44 <!ELEMENT project (EMPTY)> 48 <!ELEMENT project (annotation?)>
45 <!ATTLIST project name CDATA #REQUIRED> 49 <!ATTLIST project name CDATA #REQUIRED>
46 <!ATTLIST project path CDATA #IMPLIED> 50 <!ATTLIST project path CDATA #IMPLIED>
47 <!ATTLIST project remote IDREF #IMPLIED> 51 <!ATTLIST project remote IDREF #IMPLIED>
48 <!ATTLIST project revision CDATA #IMPLIED> 52 <!ATTLIST project revision CDATA #IMPLIED>
53 <!ATTLIST project groups CDATA #IMPLIED>
54 <!ATTLIST project sync-c CDATA #IMPLIED>
55
56 <!ELEMENT annotation (EMPTY)>
57 <!ATTLIST annotation name CDATA #REQUIRED>
58 <!ATTLIST annotation value CDATA #REQUIRED>
59 <!ATTLIST annotation keep CDATA "true">
49 60
50 <!ELEMENT remove-project (EMPTY)> 61 <!ELEMENT remove-project (EMPTY)>
51 <!ATTLIST remove-project name CDATA #REQUIRED> 62 <!ATTLIST remove-project name CDATA #REQUIRED>
63
64 <!ELEMENT repo-hooks (EMPTY)>
65 <!ATTLIST repo-hooks in-project CDATA #REQUIRED>
66 <!ATTLIST repo-hooks enabled-list CDATA #REQUIRED>
67
68 <!ELEMENT include (EMPTY)>
69 <!ATTLIST include name CDATA #REQUIRED>
52 ]> 70 ]>
53 71
54A description of the elements and their attributes follows. 72A description of the elements and their attributes follows.
@@ -72,6 +90,12 @@ name specified here is used as the remote name in each project's
72.git/config, and is therefore automatically available to commands 90.git/config, and is therefore automatically available to commands
73like `git fetch`, `git remote`, `git pull` and `git push`. 91like `git fetch`, `git remote`, `git pull` and `git push`.
74 92
93Attribute `alias`: The alias, if specified, is used to override
94`name` to be set as the remote name in each project's .git/config.
95Its value can be duplicated while attribute `name` has to be unique
96in the manifest file. This helps each project to be able to have
97same remote name which actually points to different remote url.
98
75Attribute `fetch`: The Git URL prefix for all projects which use 99Attribute `fetch`: The Git URL prefix for all projects which use
76this remote. Each project's name is appended to this prefix to 100this remote. Each project's name is appended to this prefix to
77form the actual URL used to clone the project. 101form the actual URL used to clone the project.
@@ -152,6 +176,25 @@ Tags and/or explicit SHA-1s should work in theory, but have not
152been extensively tested. If not supplied the revision given by 176been extensively tested. If not supplied the revision given by
153the default element is used. 177the default element is used.
154 178
179Attribute `groups`: List of groups to which this project belongs,
180whitespace or comma separated. All projects belong to the group
181"default", and each project automatically belongs to a group of
182it's name:`name` and path:`path`. E.g. for
183<project name="monkeys" path="barrel-of"/>, that project
184definition is implicitly in the following manifest groups:
185default, name:monkeys, and path:barrel-of.
186
187Element annotation
188------------------
189
190Zero or more annotation elements may be specified as children of a
191project element. Each element describes a name-value pair that will be
192exported into each project's environment during a 'forall' command,
193prefixed with REPO__. In addition, there is an optional attribute
194"keep" which accepts the case insensitive values "true" (default) or
195"false". This attribute determines whether or not the annotation will
196be kept when exported with the manifest subcommand.
197
155Element remove-project 198Element remove-project
156---------------------- 199----------------------
157 200
@@ -163,6 +206,16 @@ This element is mostly useful in the local_manifest.xml, where
163the user can remove a project, and possibly replace it with their 206the user can remove a project, and possibly replace it with their
164own definition. 207own definition.
165 208
209Element include
210---------------
211
212This element provides the capability of including another manifest
213file into the originating manifest. Normal rules apply for the
214target manifest to include- it must be a usable manifest on it's own.
215
216Attribute `name`; the manifest to include, specified relative to
217the manifest repositories root.
218
166 219
167Local Manifest 220Local Manifest
168============== 221==============
diff --git a/docs/manifest_submodule.txt b/docs/manifest_submodule.txt
deleted file mode 100644
index 1718284b..00000000
--- a/docs/manifest_submodule.txt
+++ /dev/null
@@ -1,136 +0,0 @@
1repo Manifest Format (submodule)
2================================
3
4A repo manifest describes the structure of a repo client; that is
5the directories that are visible and where they should be obtained
6from with git.
7
8The basic structure of a manifest is a bare Git repository holding
9a 'gitmodules' file in the top level directory, and one or more
10gitlink references pointing at commits from the referenced projects.
11This is the same structure as used by 'git submodule'.
12
13Manifests are inherently version controlled, since they are kept
14within a Git repository. Updates to manifests are automatically
15obtained by clients during `repo sync`.
16
17.gitmodules
18===========
19
20The '.gitmodules' file, located in the top-level directory of the
21client's working tree (or manifest repository), is a text file with
22a syntax matching the requirements of 'git config'.
23
24This file contains one subsection per project (also called a
25submodule by git), and the subsection value is a unique name to
26describe the project. Each submodule section must contain the
27following required keys:
28
29 * path
30 * url
31
32submodule.<name>.path
33---------------------
34
35Defines the path, relative to the top-level directory of the client's
36working tree, where the project is expected to be checked out. The
37path name must not end with a '/'. All paths must be unique within
38the .gitmodules file.
39
40At the specified path within the manifest repository a gitlink
41tree entry (an entry with file mode 160000) must exist referencing
42a commit SHA-1 from the project. This tree entry specifies the
43exact version of the project that `repo sync` will synchronize the
44client's working tree to.
45
46submodule.<name>.url
47--------------------
48
49Defines a URL from where the project repository can be cloned.
50By default `repo sync` will clone from this URL whenever a user
51needs to access this project.
52
53submodule.<name>.revision
54-------------------------
55
56Name of the branch in the project repository that Gerrit Code Review
57should automatically refresh the project's gitlink entry from.
58
59If set, during submit of a change within the referenced project,
60Gerrit Code Review will automatically update the manifest
61repository's corresponding gitlink to the new commit SHA-1 of
62this branch.
63
64Valid values are a short branch name (e.g. 'master'), a full ref
65name (e.g. 'refs/heads/master'), or '.' to request using the same
66branch name as the manifest branch itself. Since '.' automatically
67uses the manifest branch, '.' is the recommended value.
68
69If this key is not set, Gerrit Code Review will NOT automatically
70update the gitlink. An unset key requires the manifest maintainer
71to manually update the gitlink when it is necessary to reference
72a different revision of the project.
73
74submodule.<name>.update
75-----------------------
76
77This key is not supported by repo. If set, it will be ignored.
78
79repo.notice
80-----------
81
82A message displayed when repo sync uses this manifest.
83
84
85.review
86=======
87
88The optional '.review' file, located in the top-level directory of
89the client's working tree (or manifest repository), is a text file
90with a syntax matching the requirements of 'git config'.
91
92This file describes how `repo upload` should interact with the
93project's preferred code review system.
94
95review.url
96----------
97
98URL of the default Gerrit Code Review server. If a project does
99not have a specific URL in the '.review' file, this default URL
100will be used instead.
101
102review.<name>.url
103-----------------
104
105Project specific URL of the Gerrit Code Review server, for the
106submodule whose project name is <name>.
107
108Example
109=======
110
111 $ cat .gitmodules
112 [submodule "app/Clock"]
113 path = clock
114 url = git://vcs.example.com/ClockWidget.git
115 revision = .
116 [submodule "app/Browser"]
117 path = net/browser
118 url = git://netgroup.example.com/network/web/Browser.git
119 revision = .
120
121 $ cat .review
122 [review]
123 url = vcs-gerrit.example.com
124 [review "app/Browser"]
125 url = netgroup.example.com
126
127In the above example, the app/Clock project will send its code
128reviews to the default server, vcs-gerrit.example.com, while
129app/Browser will send its code reviews to netgroup.example.com.
130
131See Also
132========
133
134 * http://www.kernel.org/pub/software/scm/git/docs/gitmodules.html
135 * http://www.kernel.org/pub/software/scm/git/docs/git-config.html
136 * http://code.google.com/p/gerrit/