640f9ef58d
Change-Id: Ie6b1859ab5bcd8172f7e875c41263dedbf1e25f5
170 lines
4.5 KiB
ReStructuredText
170 lines
4.5 KiB
ReStructuredText
git-review
|
|
==========
|
|
|
|
A git command for submitting branches to Gerrit
|
|
|
|
git-review is a tool that helps submitting git branches to gerrit for
|
|
review.
|
|
|
|
Setup
|
|
-----
|
|
|
|
By default, git-review will look for a remote named 'gerrit' for working
|
|
with Gerrit. If the remote exists, git-review will submit the current
|
|
branch to HEAD:refs/for/master at that remote.
|
|
|
|
If the Gerrit remote does not exist, git-review looks for a file
|
|
called .gitreview at the root of the repository with information about
|
|
the gerrit remote. Assuming that file is present, git-review should
|
|
be able to automatically configure your repository the first time it
|
|
is run.
|
|
|
|
The name of the Gerrit remote is configurable; see the configuration
|
|
section below.
|
|
|
|
Usage
|
|
-----
|
|
|
|
Hack on some code, then::
|
|
|
|
git review
|
|
|
|
If you want to submit that code to a branch other than "master", then::
|
|
|
|
git review branchname
|
|
|
|
If you want to submit to a different remote::
|
|
|
|
git review -r my-remote
|
|
|
|
If you want to supply a review topic::
|
|
|
|
git review -t topic/awesome-feature
|
|
|
|
If you want to submit a branch for review and then remove the local branch::
|
|
|
|
git review -f
|
|
|
|
If you want to skip the automatic "git rebase -i" step::
|
|
|
|
git review -R
|
|
|
|
If you want to download change 781 from gerrit to review it::
|
|
|
|
git review -d 781
|
|
|
|
If you want to download patchset 4 for change 781 from gerrit to review it::
|
|
|
|
git review -d 781,4
|
|
|
|
If you want to compare patchset 4 with patchset 10 of change 781 from gerrit::
|
|
|
|
git review -m 781,4-10
|
|
|
|
If you just want to do the commit message and remote setup steps::
|
|
|
|
git review -s
|
|
|
|
.gitreview file format
|
|
----------------------
|
|
|
|
Example .gitreview file (used to upload for git-review itself)::
|
|
|
|
[gerrit]
|
|
host=review.openstack.org
|
|
port=29418
|
|
project=openstack-infra/git-review.git
|
|
defaultbranch=master
|
|
|
|
Required values: host, project
|
|
|
|
Optional values: port (default: 29418), defaultbranch (default: master),
|
|
defaultremote (default: gerrit).
|
|
|
|
**Notes**
|
|
|
|
* Username is not required because it is requested on first run
|
|
|
|
* Unlike git config files, there cannot be any whitespace before the name
|
|
of the variable.
|
|
|
|
* Upon first run, git-review will create a remote for working with Gerrit,
|
|
if it does not already exist. By default, the remote name is 'gerrit',
|
|
but this can be overridden with the 'defaultremote' configuration
|
|
option.
|
|
|
|
* You can specify different values to be used as defaults in
|
|
~/.config/git-review/git-review.conf or /etc/git-review/git-review.conf.
|
|
|
|
Hooks
|
|
-----
|
|
|
|
git-review has a custom hook mechanism to run a script before certain
|
|
actions. This is done in the same spirit as the classic hooks in git.
|
|
|
|
There are two types of hooks, a global one which is stored in
|
|
~/.config/git-review/hooks/ and one local to the repository stored in
|
|
.git/hooks/ with the other git hook scripts.
|
|
|
|
**The script needs be executable before getting executed**
|
|
|
|
The name of the script is $action-review where action can be
|
|
:
|
|
|
|
* pre - run at first before doing anything.
|
|
|
|
* post - run at the end after the review was sent.
|
|
|
|
* draft - run when in draft mode.
|
|
|
|
if the script returns with an exit status different than zero,
|
|
git-review will exit with the a custom shell exit code 71.
|
|
|
|
Installation
|
|
------------
|
|
|
|
Install with pip install git-review
|
|
|
|
For installation from source simply add git-review to your $PATH
|
|
after installing the dependencies listed in requirements.txt
|
|
|
|
Running tests
|
|
-------------
|
|
|
|
Running tests for git-review means running a local copy of Gerrit to
|
|
check that git-review interacts correctly with it. This requires the
|
|
following
|
|
:
|
|
|
|
* a Java Runtime Environment on the machine to run tests on
|
|
|
|
* Internet access to download the gerrit.war file, or a locally
|
|
cached copy (it needs to be located in a .gerrit directory at the
|
|
top level of the git-review project)
|
|
|
|
To run git-review integration tests the following commands may by run::
|
|
|
|
tox -e py27
|
|
tox -e py26
|
|
tox -e py32
|
|
tox -e py33
|
|
|
|
depending on what Python interpreter would you like to use.
|
|
|
|
Contributing
|
|
------------
|
|
|
|
To get the latest code, see: https://git.openstack.org/cgit/openstack-infra/git-review
|
|
|
|
Bugs are handled at: https://launchpad.net/git-review
|
|
|
|
There is a mailing list at: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra
|
|
|
|
Code reviews, as you might expect, are handled by gerrit at: https://review.openstack.org
|
|
|
|
Use ``git review`` to submit patches (after creating a gerrit account that links to your launchpad account). Example::
|
|
|
|
# Do your commits
|
|
git review
|
|
# Enter your username if prompted
|