repo - repo init - manual page for repo init
repo init [options] [manifest url]
Summary
Initialize a repo client checkout in the current directory
- -h, --help
- show this help message and exit
- Logging options:
- -v, --verbose
- show all output
- -q, --quiet
- only show errors
- Manifest options:
- -u URL,
--manifest-url=URL
- manifest repository location
- -b REVISION,
--manifest-branch=REVISION
- manifest branch or revision (use HEAD for default)
- -m NAME.xml,
--manifest-name=NAME.xml
- initial manifest file
- -g GROUP,
--groups=GROUP
- restrict manifest projects to ones with specified group(s)
[default|all|G1,G2,G3|G4,-G5,-G6]
- -p PLATFORM,
--platform=PLATFORM
- restrict manifest projects to ones with a specified platform group
[auto|all|none|linux|darwin|...]
- --submodules
- sync any submodules associated with the manifest repo
- Manifest (only) checkout options:
- -c,
--current-branch
- fetch only current manifest branch from server
- --no-current-branch
- fetch all manifest branches from server
- --tags
- fetch tags in the manifest
- --no-tags
- don't fetch tags in the manifest
- Checkout modes:
- --mirror
- create a replica of the remote repositories rather than a client working
directory
- --archive
- checkout an archive instead of a git repository for each project. See git
archive.
- --worktree
- use git-worktree to manage projects
- Project checkout optimizations:
- --reference=DIR
- location of mirror directory
- --dissociate
- dissociate from reference mirrors after clone
- --depth=DEPTH
- create a shallow clone with given depth; see git clone
- --partial-clone
- perform partial clone
(https://gitscm.com/docs/gitrepositorylayout#_code_partialclone_code)
- --no-partial-clone
- disable use of partial clone
(https://gitscm.com/docs/gitrepositorylayout#_code_partialclone_code)
- --partial-clone-exclude=PARTIAL_CLONE_EXCLUDE
- exclude the specified projects (a comma-delimited project names) from
partial clone
(https://gitscm.com/docs/gitrepositorylayout#_code_partialclone_code)
- --clone-filter=CLONE_FILTER
- filter for use with --partial-clone [default: blob:none]
- --use-superproject
- use the manifest superproject to sync projects
- --no-use-superproject
- disable use of manifest superprojects
- --clone-bundle
- enable use of /clone.bundle on HTTP/HTTPS (default if not
--partial-clone)
- --no-clone-bundle
- disable use of /clone.bundle on HTTP/HTTPS (default if
--partial-clone)
- repo Version options:
- --repo-url=URL
- repo repository location ($REPO_URL)
- --repo-rev=REV
- repo branch or revision ($REPO_REV)
- --no-repo-verify
- do not verify repo source code
- Other options:
- --config-name
- Always prompt for name/e-mail
Run `repo help init` to view the detailed manual.
Description
The 'repo init' command is run once to install and initialize
repo. The latest repo source code and manifest collection is downloaded from
the server and is installed in the .repo/ directory in the current working
directory.
When creating a new checkout, the manifest URL is the only
required setting. It may be specified using the --manifest-url
option, or as the first optional argument.
The optional -b argument can be used to select the manifest
branch to checkout and use. If no branch is specified, the remote's default
branch is used. This is equivalent to using -b HEAD.
The optional -m argument can be used to specify an
alternate manifest to be used. If no manifest is specified, the manifest
default.xml will be used.
The --reference option can be used to point to a directory
that has the content of a --mirror sync. This will make the working
directory use as much data as possible from the local reference directory
when fetching from the server. This will make the sync go a lot faster by
reducing data traffic on the network.
The --dissociate option can be used to borrow the objects
from the directory specified with the --reference option only to
reduce network transfer, and stop borrowing from them after a first clone is
made by making necessary local copies of borrowed objects.
The --no-clone-bundle option disables any attempt to use
$URL/clone.bundle to bootstrap a new Git repository from a resumeable
bundle file on a content delivery network. This may be necessary if there
are problems with the local Python HTTP client or proxy configuration, but
the Git binary works.
Switching Manifest Branches
To switch to another manifest branch, `repo init -b
otherbranch` may be used in an existing client. However, as this only
updates the manifest, a subsequent `repo sync` (or `repo sync -d`) is
necessary to update the working directory files.