|
|
| |
GIT-REVIEW(1) |
FreeBSD General Commands Manual |
GIT-REVIEW(1) |
git-review —
Submit changes to Gerrit for review
git-review |
[-r remote]
[-uv ] -d
change [branch] |
git-review |
[-r remote]
[-uv ] -x
change [branch] |
git-review |
[-r remote]
[-uv ] -N
change [branch] |
git-review |
[-r remote]
[-uv ] -X
change [branch] |
git-review |
[-r remote]
[-uv ] -m
change-ps-range [branch] |
git-review |
[-r remote]
[-fnuv ] -s
[branch] |
git-review |
[-fnuvDRT ] [-r
remote] [-t
topic] [--reviewers
reviewer ...] [--notify
type] [branch] |
git-review automates and streamlines some of the tasks
involved with submitting local changes to a Gerrit server for review. It is
designed to make it easier to comprehend Gerrit, especially for users that
have recently switched to Git from another version control system.
change can be
changeNumber as obtained using
--list option, or it can be
changeNumber,patchsetNumber for fetching exact
patchset from the change. In that case local branch name will have a
-patch[patchsetNumber] suffix.
The following options are available:
-d
change,
--download= change
- Download change from Gerrit into a local branch. The
branch will be named after the patch author and the name of a topic. If
the local branch already exists, it will attempt to update with the latest
patchset for this change.
-x
change,
--cherrypick= change
- Apply change from Gerrit and commit into the current
local branch ("cherry pick"). No additional branch is created.
This makes it possible to review a change without creating a
local branch for it. On the other hand, be aware: if you are not
careful, this can easily result in additional patch sets for dependent
changes. Also, if the current branch is different enough, the change may
not apply at all or produce merge conflicts that need to be resolved by
hand.
-N
change,
--cherrypickonly= change
- Apply change from Gerrit into the current working
directory, add it to the staging area ("git index"), but do not
commit it.
This makes it possible to review a change without creating a
local commit for it. Useful if you want to merge several commits into
one that will be submitted for review.
If the current branch is different enough, the change may not
apply at all or produce merge conflicts that need to be resolved by
hand.
-X
change,
--cherrypickindicate= change
- Apply change from Gerrit and commit into the current
local branch ("cherry pick"), indicating which commit this
change was cherry-picked from.
This makes it possible to re-review a change for a different
branch without creating a local branch for it.
If the current branch is different enough, the change may not
apply at all or produce merge conflicts that need to be resolved by
hand.
-i ,
--new-changeid
- Force the git-review to generate a new Change-Id, even if one already
exists in the changelog.
-m
change-ps-range,
--compare= change-ps-range
- Download the specified patchsets for change from
Gerrit, rebase both on master and display differences (git-diff).
change-ps-range can be specified as
changeNumber,oldPatchSetNumber[-newPatchSetNumber]
oldPatchSetNumber is mandatory, and if
newPatchSetNumber is not specified, the latest
patchset will be used.
This makes it possible to easily compare what has changed from
last time you reviewed the proposed change.
If the master branch is different enough, the rebase can
produce merge conflicts. If that happens rebasing will be aborted and
diff displayed for not-rebased branches. You can also use
--no-rebase (-R) to always
skip rebasing.
-f ,
--finish
- Close down the local branch and switch back to the target branch on
successful submission.
-F ,
--force-rebase
- Force a rebase before doing anything else, even if not otherwise
needed.
-n ,
--dry-run
- Don't actually perform any commands that have direct effects. Print them
instead.
-r
remote,
--remote= remote
- Git remote to use for Gerrit.
-s ,
--setup
- Just run the repo setup commands but don't submit anything.
-t
topic,
--topic= topic
- Sets the target topic for this change on the Gerrit server. If not
specified, a bug number from the commit summary will be used.
Alternatively, the local branch name will be used if different from remote
branch.
-T ,
--no-topic
- Submit review without topic.
-p ,
--private
- Send patch as a private patch ready for review. Gerrit versions >=
2.15
-P ,
--remove-private
- Send patch which already in private state to normal patch. Gerrit versions
>= 2.15
-w ,
--work-in-progress
- Send patch as work in progress for Gerrit versions >= 2.15
-W ,
--ready
- Send patch that is already work in progress as ready for review. Gerrit
versions >= 2.15
--reviewers
reviewer ...
- Subscribe one or more reviewers to the uploaded patch sets. Reviewers
should be identifiable by Gerrit (usually use their Gerrit username or
email address).
--notify
type
- Control to whom email notifications are sent. Possible values are NONE,
OWNER, OWNER_REVIEWERS, ALL (the last one is the default).
-u ,
--update
- Skip cached local copies and force updates from network resources.
-l ,
--list
- List the available reviews on the Gerrit server for this project.
-y ,
--yes
- Indicate that you do, in fact, understand if you are submitting more than
one patch.
-v ,
--verbose
- Turns on more verbose output.
-R ,
--no-rebase
- Do not automatically perform a rebase before submitting the change to
Gerrit.
When submitting a change for review, you will usually want it
to be based on the tip of upstream branch in order to avoid possible
conflicts. When amending a change and rebasing the new patchset, the
Gerrit web interface will show a difference between the two patchsets
which contains all commits in between. This may confuse many reviewers
that would expect to see a much simpler difference.
Also can be used for --compare to skip
automatic rebase of fetched reviews.
--no-thin
- Disable thin pushes when pushing to Gerrit. This should only be used if
you are currently experiencing unpack failures due to missing trees. It
should not be required in typical day to day use.
--color
always|never|auto
- Enable or disable a color output. Default is "auto".
--no-color
- Same thing as --color=never.
--no-custom-script
- Do not run scripts, installed as hooks/{action}-review, where action is
one of "pre" or "post".
--track
- Choose the branch to submit the change against (and, if rebasing, to
rebase against) from the branch being tracked (if a branch is being
tracked), and set the tracking branch when downloading a change to point
to the remote and branch against which patches should be submitted. See
gitreview.track configuration.
--no-track
- Ignore any branch being tracked by the current branch, overriding
gitreview.track. This option is implied by providing a specific branch
name on the command line.
--use-pushurl
- Use the pushurl option for the origin remote rather than conventional
separate Gerrit remotes.
--license
- Print the license text and exit.
--version
- Print the version number and exit.
--help
- Print the short help message and exit.
This utility can be configured by adding entries to Git configuration.
The following configuration keys are supported:
- gitreview.username
- Default username used to access the repository. If not specified in the
Git configuration, Git remote or .gitreview file,
the user will be prompted to specify the username.
Example entry in the .gitconfig
file:
[gitreview]
username=mygerrituser
- gitreview.scheme
- This setting determines the default scheme (ssh/http/https) of gerrit
remote
- gitreview.host
- This setting determines the default hostname of gerrit remote
- gitreview.port
- This setting determines the default port of gerrit remote
- gitreview.project
- This setting determines the default name of gerrit git repo
- gitreview.remote
- This setting determines the default name to use for gerrit remote
- gitreview.branch
- This setting determines the default branch
- gitreview.notopic
- Set to true to never submit with a default topic
- gitreview.track
- Determines whether to prefer the currently-tracked branch (if any) and the
branch against which the changeset was submitted to Gerrit (if there is
exactly one such branch) to the defaultremote and defaultbranch for
submitting and rebasing against. If the local topic branch is tracking a
remote branch, the remote and branch that the local topic branch is
tracking should be used for submit and rebase operations, rather than the
defaultremote and defaultbranch.
When downloading a patch, creates the local branch to track
the appropriate remote and branch in order to choose that branch by
default when submitting modifications to that changeset.
A value of 'true' or 'false' should be specified.
- true
- Do prefer the currently-tracked branch (if any) - equivalent to
setting
--track when submitting changes.
- false
- Ignore tracking branches - equivalent to setting
--no-track (the default) or providing an
explicit branch name when submitting changes. This is the default
value unless overridden by .gitreview file,
and is implied by providing a specific branch name on the command
line.
- gitreview.usepushurl
- This setting determines whether to use a separate Git remote for the
Gerrit connection, or to set 'pushurl' on the remote 'origin'.
A value of 'true' or 'false' should be specified.
- false
- Do not use 'pushurl' and instead use a separate remote.
- true
- Use 'pushurl' for interacting with Gerrit.
- gitreview.rebase
- This setting determines whether changes submitted will be rebased to the
newest state of the branch.
A value of 'true' or 'false' should be specified.
- false
- Do not rebase changes on submit - equivalent to setting
-R when submitting changes.
- true
- Do rebase changes on submit. This is the default value unless
overridden by .gitreview file.
This setting takes precedence over repository-specific
configuration in the .gitreview file.
- gitreview.branchauthor
- This setting changes the look of the author part when naming the local
branch of a downloaded change. Value must be one of "name",
"email", or "username". Default is "name".
See also the
--download option.
- color.review
- Whether to use ANSI escape sequences to add color to the output displayed
by this command. Default value is determined by color.ui.
- auto or true
- If you want output to use color when written to the terminal (default
with Git 1.8.4 and newer).
- always
- If you want all output to use color
- never or false
- If you wish not to use color for any output. (default with Git older
than 1.8.4)
git-review will query git credential
system for Gerrit user/password when authentication failed over http(s).
Unlike git, git-review does not persist Gerrit
user/password in git credential system for security purposes and git
credential system configuration stays under user responsibility.
To use git-review with your project, it is recommended
that you create a file at the root of the repository named
.gitreview and place information about your Gerrit
installation in it. The format is similar to the Windows .ini file format:
[gerrit]
host=hostname
port=TCP port number of gerrit
project=project name
defaultbranch=branch to work on
It is also possible to specify optional default name for the Git
remote using the defaultremote configuration
parameter.
Setting defaultrebase to zero will make
git-review not to rebase changes by default (same as
the -R command line option)
[gerrit]
scheme=ssh
host=review.example.com
port=29418
project=department/project.git
defaultbranch=master
defaultremote=review
defaultrebase=0
track=0
When the same option is provided through FILES and CONFIGURATION,
the CONFIGURATION value wins.
Normally, exit status is 0 if executed successfully. Exit status 1 indicates
general error, sometimes more specific error codes are available:
- 2
- Gerrit commit-msg hook could not be successfully
installed.
- 3
- Could not parse malformed argument value or user input.
- 32
- Cannot fetch list of open changesets from Gerrit.
- 33
- Cannot parse list of open changesets received from Gerrit.
- 34
- Cannot query information about changesets.
- 35
- Cannot fetch information about the changeset to be downloaded.
- 36
- Changeset not found.
- 37
- Particular patchset cannot be fetched from the remote git repository.
- 38
- Specified patchset number not found in the changeset.
- 39
- Invalid patchsets for comparison.
- 40
- Connection to Gerrit was closed.
- 64
- Cannot checkout downloaded patchset into the new branch.
- 65
- Cannot checkout downloaded patchset into existing branch.
- 66
- Cannot hard reset working directory and git index after download.
- 67
- Cannot switch to some other branch when trying to finish the current
branch.
- 68
- Cannot delete current branch.
- 69
- Requested patchset cannot be fully applied to the current branch. This
exit status will be returned when there are merge conflicts with the
current branch. Possible reasons include an attempt to apply patchset from
the different branch or code. This exit status will also be returned if
the patchset is already applied to the current branch.
- 70
- Cannot determine top level Git directory or .git subdirectory path.
- 101
- Unauthorized (401) http request done by git-review.
- 104
- Not Found (404) http request done by git-review.
Exit status larger than 31 indicates problem with communication
with Gerrit or remote Git repository, exit status larger than 63 means there
was a problem with a local repository or a working copy.
Exit status larger than or equal to 128 means internal error in
running the "git" command.
To fetch a remote change number 3004:
$ git-review -d 3004
Downloading refs/changes/04/3004/1 from gerrit into
review/someone/topic_name
Switched to branch 'review/someone/topic_name
$ git branch
master
* review/author/topic_name
Gerrit looks up both name of the author and the topic name from
Gerrit to name a local branch. This facilitates easier identification of
changes.
To fetch a remote patchset number 5 from change number 3004:
$ git-review -d 3004,5
Downloading refs/changes/04/3004/5 from gerrit into
review/someone/topic_name-patch5
Switched to branch 'review/someone/topic_name-patch5
$ git branch
master
* review/author/topic_name-patch5
To send a change for review and delete local branch
afterwards:
$ git-review -f
remote: Resolving deltas: 0% (0/8)
To ssh://username@review.example.com/department/project.git
* [new branch] HEAD -> refs/for/master/topic_name
Switched to branch 'master'
Deleted branch 'review/someone/topic_name'
$ git branch
* master
An example .gitreview configuration file
for a project department/project hosted on
review.example.com port
29418 in the branch master
:
[gerrit]
host=review.example.com
port=29418
project=department/project.git
defaultbranch=master
git-review is maintained by OpenDev
Contributors
This manpage has been enhanced by:
Antoine Musso ⟨hashar@free.fr⟩
Jeremy Stanley ⟨fungi@yuggoth.org⟩
Marcin Cieslak ⟨saper@saper.info⟩
Pavel Sedlák
⟨psedlak@redhat.com⟩
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |