On Wednesday 12 December 2012 11:53:07 Grant Likely wrote:
- Each repo gets a seperate directory. It doesn't look like one can be
a subdirectory of another, but it should be possible to create symlinks between them
you should be able to nest them. for example: <project path="chromite" name="chromiumos/chromite" /> <project path="chromite/third_party/pyelftools" name="chromiumos/third_party/pyelftools" />
the chromite repo is stored on the server at: chromiumos/chromite.git but is checked out locally to: chromite/
then pyelftools is stored on the server at: chromiumos/third_party/pyelftools.git but is checked out locally to: chromite/third_party/pyelftools/
- The repo can be configured to follow a branch on each tree, or be
locked to a specific tag. All is stored in a git repo so is kept under revision control.
i think it can work with any git commitsh (meaning you could even lock to a sha1 if you wanted)
- Figuring out how to write a repo default.xml manifest file wasn't
obvious, but it is a one-time setup thing. Once working it won't need to be manipulated frequently.
yeah, the documentation isn't the strong point imo. but starting from an existing manifest.xml and it's easy to customize it for your needs.
here's one: https://chromium.googlesource.com/chromiumos/manifest/+/master/full.xml
- Possible downside; repo *really* likes to update itself from the
upstream repo .git tree. That is potentially a risk if the upstream repo moves or otherwise stops working. No data would be lost, but it could be a denial-of-service kind of error.
mmm, you don't have to do it that way. maintain a mirror of the upstream repo in the same area as the rest of your repos. then point the initial repo init to that. now you have full control over the version of repo people use.
repo init --repo-url https://git.chromium.org/git/external/repo.git ... -mike