qisrc manifest syntax¶
This file is used by the
qisrc init command
to get a list of projects to fetch and add in the
current work tree.
Right now, only git URLs are supported.
An minimal example may be
<manifest> <remote name="origin" url="git://example.com" /> <repo project="foo/bar.git" remotes="origin" src="bar" /> </manifest>
Here the repository from
git://example.com/foo/bar.git will be cloned
manifest node accepts three types of children
remote node must have a
url attribute, that will
be used as a base URL for every project.
You can have several remotes with different names, like this:
<manifest> <remote name="public" url="git://github.com" /> <remote name="origin" url="ssh://email@example.com" /> <repo project="aldebaran/qibuild.git" src="tools/qibuild" remotes="public" /> <repo project="naoqi/naoqi.git" src="naoqi" /> </manifest>
ssh://firstname.lastname@example.org/naoqi/naoqi.gitwill be cloned into
naoqi, (because the default remote is
git://github.com/aldebaran/qibuild.gitwill be cloned into
publicis used as remote)
Many types of url are supported:
ssh://<username>@<host>when using ssh
ssh://<username>@<host>:<port>when using ssh on a non-standard port
Additionally, if you are using gerrit with ssh, you can specify that
the remote will be used for code review (this is useful to change
qisrc push behavior, so that changes are pushed to
<manifest> <remote name="gerrit" url="ssh://review.corp.com:29418" review="true"/> </manifest>
Since when using gerrit, you have several usernames,
the username is asked by
qisrc when the manifest is parsed.
repo node must have a
It also must have a
remotes attribute matching some existing
src is not given, it will deduced from the project name.
(for instance the
foo/bar.git repo will be cloned to
<manifest> <remote name="origin" url="git://example.com" /> <remote name="gerrit" url="ssh://review.corp.com:29418" review="true" /> <project name="bar/baz.git" remotes="origin gerrit" /> </manifest>
qisrc init will try to create an ssh connection with
username is read from the
operating system first, or asked to the user.
The repository will be configured with two remotes:
commit-msg gerrit hook will be fetched automatically from
<username>@<server>:hooks/commit-msg on the given port .
Groups nodes must have a
Then they contain a list of project name, and can include other groups.
<groups> <group name="testing"> <project name="gtest.git" /> <project name="gmock.git" /> </group> <group name="core"> <group name="testing" /> <project name="libcore" /> </group> </groups>
Here we’ve defined a group named “testing”, so that it’s easy to
gmock repositories together.
If someone uses
qisrc inint --group core, he will get