Provided by: git-review_1.23-1_all bug

NAME

       git-review — Submit changes to Gerrit for review

SYNOPSIS

       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 [-fnuvDR] [-r remote] [-t topic] [branch]
       git-review --version

DESCRIPTION

       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.

       -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.

       -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.

       -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.

       -D, --draft
               Submit review as a draft. Requires Gerrit 2.3 or newer.

       -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.

       --version
               Print the version number and exit.

CONFIGURATION

       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

       gireview.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.

FILES

       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]
             host=review.example.com
             port=29418
             project=department/project.git
             defaultbranch=master
             defaultremote=review
             defaultrebase=0

DIAGNOSTICS

       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.

       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.

       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.

       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.

EXAMPLES

       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/departement/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

BUGS

       Bug reports can be submitted to https://launchpad.net/git-review

AUTHORS

       git-review is maintained by OpenStack, LLC

       This manpage has been enhanced by:
       Antoine Musso <hashar@free.fr>
       Marcin Cieslak <saper@saper.info>
       Pavel Sedlák <psedlak@redhat.com>

                                                 April 4th, 2012                                   GIT-REVIEW(1)