REPO(1)

πŸ’– NAME πŸ’–

okay so bestie, this is the manual page for repo upload β€” the repo command's upload helper. It lives in the Repo Manual, section 1, and the page you're reading right now is REPO(1). Yes, that's the same thing, we're just vibing. ✨

✨ SYNOPSIS ✨

repo upload [--re --cc] [<project>]...

🌸 DESCRIPTION 🌸

Summary

Upload changes for code review. That's the whole thing. That's the job. slay. πŸ’…

πŸŽ€ OPTIONS πŸŽ€

  • -h, --help β€” show this help message and exit
  • -j JOBS, --jobs=JOBS β€” how many jobs to run in parallel (default: based on number of CPU cores)
  • -t, --topic-branch β€” set the topic to the local branch name
  • --topic=TOPIC β€” set topic for the change
  • --hashtag=HASHTAGS, --ht=HASHTAGS β€” add hashtags (comma delimited) to the review
  • --hashtag-branch, --htb β€” add local branch name as a hashtag
  • -l LABELS, --label=LABELS β€” add a label when uploading
  • --pd=PATCHSET_DESCRIPTION, --patchset-description=PATCHSET_DESCRIPTION β€” description for patchset
  • --re=REVIEWERS, --reviewers=REVIEWERS β€” request reviews from these people
  • --cc=CC β€” also send email to these email addresses
  • --br=BRANCH, --branch=BRANCH β€” (local) branch to upload
  • -c, --current-branch β€” upload current git branch
  • --no-current-branch β€” upload all git branches
  • --ne, --no-emails β€” do not send e-mails on upload
  • -p, --private β€” upload as a private change (deprecated; use --wip)
  • -w, --wip β€” upload as a work-in-progress change
  • -r, --ready β€” mark change as ready (clears work-in-progress setting)
  • -o PUSH_OPTIONS, --push-option=PUSH_OPTIONS β€” additional push options to transmit
  • -D BRANCH, --destination=BRANCH, --dest=BRANCH β€” submit for review on this target branch
  • -n, --dry-run β€” do everything except actually upload the CL
  • -y, --yes β€” answer yes to all safe prompts
  • --ignore-untracked-files β€” ignore untracked files in the working copy
  • --no-ignore-untracked-files β€” always ask about untracked files in the working copy
  • --no-cert-checks β€” disable verifying ssl certs (unsafe)

πŸ“ Logging options:

  • -v, --verbose β€” show all output
  • -q, --quiet β€” only show errors

πŸ—‚οΈ Multi-manifest options:

  • --outer-manifest β€” operate starting at the outermost manifest
  • --no-outer-manifest β€” do not operate on outer manifests
  • --this-manifest-only β€” only operate on this (sub)manifest
  • --no-this-manifest-only, --all-manifests β€” operate on this manifest and its submanifests

πŸͺ pre-upload hooks:

  • --no-verify β€” Do not run the pre-upload hook.
  • --verify β€” Run the pre-upload hook without prompting.
  • --ignore-hooks β€” Do not abort if pre-upload hooks fail.
  • --fix β€” Automatically apply pre-upload fixes without prompting.

Run repo help upload to view the detailed manual. (iykyk, there's a whole other manual hiding in there 🫢)


πŸ’œ DETAILS πŸ’œ

The repo upload command is used to send changes to the Gerrit Code Review system. It searches for topic branches in local projects that have not yet been published for review. If multiple topic branches are found, repo upload opens an editor to allow the user to select which branches to upload.

repo upload searches for uploadable changes in all projects listed at the command line. Projects can be specified either by name, or by a relative or absolute path to the project's local directory. If no projects are specified, repo upload will search for uploadable changes in all projects listed in the manifest.

If the --reviewers or --cc options are passed, those emails are added to the respective list of users, and emails are sent to any new users. Users passed as --reviewers must already be registered with the code review system, or the upload will fail. like, it will genuinely just fail. no cap.

While most normal Gerrit options have dedicated command line options, direct access to the Gerrit options is available via --push-options. This is useful when Gerrit has newer functionality that repo upload doesn't yet support, or doesn't have plans to support. See the Push Options documentation for more details:

https://gerrit-review.googlesource.com/Documentation/user-upload.html#push_options

🧚 Configuration

review.URL.autoupload:

To disable the "Upload ... (y/N)?" prompt, you can set a per-project or global Git configuration option. If review.URL.autoupload is set to "true" then repo will assume you always answer "y" at the prompt, and will not prompt you further. If it is set to "false" then repo will assume you always answer "n", and will abort.

review.URL.autoreviewer:

To automatically append a user or mailing list to reviews, you can set a per-project or global Git option to do so.

review.URL.autocopy:

To automatically copy a user or mailing list to all uploaded reviews, you can set a per-project or global Git option to do so. Specifically, review.URL.autocopy can be set to a comma separated list of reviewers who you always want copied on all uploads with a non-empty --re argument.

review.URL.username:

Override the username used to connect to Gerrit Code Review. By default the local part of the email address is used.

The URL must match the review URL listed in the manifest XML file, or in the .git/config within the project. For example:

[remote "origin"]

url = git://git.example.com/project.git review =
http://review.example.com/

[review "http://review.example.com/"]

autoupload = true autocopy =
johndoe@company.com,my-team-alias@company.com

review.URL.uploadtopic:

To add a topic branch whenever uploading a commit, you can set a per-project or global Git option to do so. If review.URL.uploadtopic is set to "true" then repo will assume you always want the equivalent of the -t option to the repo command. If unset or set to "false" then repo will make use of only the command line option.

review.URL.uploadhashtags:

To add hashtags whenever uploading a commit, you can set a per-project or global Git option to do so. The value of review.URL.uploadhashtags will be used as comma delimited hashtags like the --hashtag option.

review.URL.uploadlabels:

To add labels whenever uploading a commit, you can set a per-project or global Git option to do so. The value of review.URL.uploadlabels will be used as comma delimited labels like the --label option.

review.URL.uploadnotify:

Control e-mail notifications when uploading.

https://gerrit-review.googlesource.com/Documentation/user-upload.html#notify

review.URL.uploadwarningthreshold:

Repo will warn you if you are attempting to upload a large number of commits in one or more branches. By default, the threshold is five commits. This option allows you to override the warning threshold to a different value.

⭐ References

Gerrit Code Review:

https://www.gerritcodereview.com/

okay that's the whole page bestie, you ate it up πŸ’– this was the repo upload manual, August 2026 edition, tagged REPO(1) and sourced from the repo upload docs. go forth and upload, you've got this πŸ‘‘πŸŒˆ

πŸ“¦ where this page comes from