2009-07-04 01:05:23 +00:00
|
|
|
repo Manifest Format (submodule)
|
|
|
|
================================
|
|
|
|
|
|
|
|
A repo manifest describes the structure of a repo client; that is
|
|
|
|
the directories that are visible and where they should be obtained
|
|
|
|
from with git.
|
|
|
|
|
|
|
|
The basic structure of a manifest is a bare Git repository holding
|
|
|
|
a 'gitmodules' file in the top level directory, and one or more
|
|
|
|
gitlink references pointing at commits from the referenced projects.
|
|
|
|
This is the same structure as used by 'git submodule'.
|
|
|
|
|
|
|
|
Manifests are inherently version controlled, since they are kept
|
|
|
|
within a Git repository. Updates to manifests are automatically
|
|
|
|
obtained by clients during `repo sync`.
|
|
|
|
|
|
|
|
.gitmodules
|
|
|
|
===========
|
|
|
|
|
|
|
|
The '.gitmodules' file, located in the top-level directory of the
|
|
|
|
client's working tree (or manifest repository), is a text file with
|
|
|
|
a syntax matching the requirements of 'git config'.
|
|
|
|
|
|
|
|
This file contains one subsection per project (also called a
|
|
|
|
submodule by git), and the subsection value is a unique name to
|
|
|
|
describe the project. Each submodule section must contain the
|
|
|
|
following required keys:
|
|
|
|
|
|
|
|
* path
|
|
|
|
* url
|
|
|
|
|
|
|
|
submodule.<name>.path
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
Defines the path, relative to the top-level directory of the client's
|
|
|
|
working tree, where the project is expected to be checked out. The
|
|
|
|
path name must not end with a '/'. All paths must be unique within
|
|
|
|
the .gitmodules file.
|
|
|
|
|
|
|
|
At the specified path within the manifest repository a gitlink
|
|
|
|
tree entry (an entry with file mode 160000) must exist referencing
|
|
|
|
a commit SHA-1 from the project. This tree entry specifies the
|
|
|
|
exact version of the project that `repo sync` will synchronize the
|
|
|
|
client's working tree to.
|
|
|
|
|
|
|
|
submodule.<name>.url
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
Defines a URL from where the project repository can be cloned.
|
|
|
|
By default `repo sync` will clone from this URL whenever a user
|
|
|
|
needs to access this project.
|
|
|
|
|
|
|
|
submodule.<name>.revision
|
|
|
|
-------------------------
|
|
|
|
|
|
|
|
Name of the branch in the project repository that Gerrit Code Review
|
|
|
|
should automatically refresh the project's gitlink entry from.
|
|
|
|
|
|
|
|
If set, during submit of a change within the referenced project,
|
|
|
|
Gerrit Code Review will automatically update the manifest
|
|
|
|
repository's corresponding gitlink to the new commit SHA-1 of
|
|
|
|
this branch.
|
|
|
|
|
|
|
|
Valid values are a short branch name (e.g. 'master'), a full ref
|
|
|
|
name (e.g. 'refs/heads/master'), or '.' to request using the same
|
|
|
|
branch name as the manifest branch itself. Since '.' automatically
|
|
|
|
uses the manifest branch, '.' is the recommended value.
|
|
|
|
|
|
|
|
If this key is not set, Gerrit Code Review will NOT automatically
|
|
|
|
update the gitlink. An unset key requires the manifest maintainer
|
|
|
|
to manually update the gitlink when it is necessary to reference
|
|
|
|
a different revision of the project.
|
|
|
|
|
|
|
|
submodule.<name>.update
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
This key is not supported by repo. If set, it will be ignored.
|
|
|
|
|
2010-12-07 18:31:19 +00:00
|
|
|
repo.notice
|
|
|
|
-----------
|
|
|
|
|
|
|
|
A message displayed when repo sync uses this manifest.
|
|
|
|
|
|
|
|
|
2009-07-04 01:05:23 +00:00
|
|
|
.review
|
|
|
|
=======
|
|
|
|
|
|
|
|
The optional '.review' file, located in the top-level directory of
|
|
|
|
the client's working tree (or manifest repository), is a text file
|
|
|
|
with a syntax matching the requirements of 'git config'.
|
|
|
|
|
|
|
|
This file describes how `repo upload` should interact with the
|
|
|
|
project's preferred code review system.
|
|
|
|
|
|
|
|
review.url
|
|
|
|
----------
|
|
|
|
|
|
|
|
URL of the default Gerrit Code Review server. If a project does
|
|
|
|
not have a specific URL in the '.review' file, this default URL
|
|
|
|
will be used instead.
|
|
|
|
|
|
|
|
review.<name>.url
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
Project specific URL of the Gerrit Code Review server, for the
|
|
|
|
submodule whose project name is <name>.
|
|
|
|
|
|
|
|
Example
|
|
|
|
=======
|
|
|
|
|
|
|
|
$ cat .gitmodules
|
|
|
|
[submodule "app/Clock"]
|
|
|
|
path = clock
|
|
|
|
url = git://vcs.example.com/ClockWidget.git
|
|
|
|
revision = .
|
|
|
|
[submodule "app/Browser"]
|
|
|
|
path = net/browser
|
|
|
|
url = git://netgroup.example.com/network/web/Browser.git
|
|
|
|
revision = .
|
|
|
|
|
|
|
|
$ cat .review
|
|
|
|
[review]
|
|
|
|
url = vcs-gerrit.example.com
|
|
|
|
[review "app/Browser"]
|
|
|
|
url = netgroup.example.com
|
|
|
|
|
|
|
|
In the above example, the app/Clock project will send its code
|
|
|
|
reviews to the default server, vcs-gerrit.example.com, while
|
|
|
|
app/Browser will send its code reviews to netgroup.example.com.
|
|
|
|
|
|
|
|
See Also
|
|
|
|
========
|
|
|
|
|
|
|
|
* http://www.kernel.org/pub/software/scm/git/docs/gitmodules.html
|
|
|
|
* http://www.kernel.org/pub/software/scm/git/docs/git-config.html
|
|
|
|
* http://code.google.com/p/gerrit/
|