Tool for uploading changesets to Gerrit from git
Go to file
Ori Livneh 068b659da2 Provide usage help even if not in Git directory
If a new user installs git-review and invokes it with no arguments (or with
'-h' / '--help') outside of a Git working tree, all she gets is a terse error
message that offers no usage help.

With this change, git-review behaves in the following manner when invoked
outside a git working tree:

* If a command-line argument is present and it is not '-h' or '--help', it is
  assumed that the user was attempting some action, and so git-review fails
  with the same error message as before.
* If no command-line arguments are present, or if there is a single
  command-line argument that is either '-h' or '--help', usage information is
  printed and the program exits.

This patch also adds myself to AUTHORS and fixes a small typo in README.rst.

Change-Id: I6fda72bf5311e74318b42e2860e7742e07b515de
2013-05-28 16:15:26 -07:00
.gitignore Freeze requirements for sdist packages. 2012-01-27 15:37:44 -05:00
.gitreview Updated .gitreview location 2012-12-16 10:40:51 -08:00
AUTHORS Provide usage help even if not in Git directory 2013-05-28 16:15:26 -07:00
git-review Provide usage help even if not in Git directory 2013-05-28 16:15:26 -07:00
git-review.1 Allow per-user override of -R setting. 2013-04-04 14:00:45 -07:00
HACKING.rst Align to OpenStack Hacking guidelines. 2013-04-04 16:22:14 -07:00
LICENSE Ported rfc.sh to a standalone program. 2011-09-25 09:16:31 -07:00
MANIFEST.in Rename README.md to README.rst 2013-04-06 20:56:38 -04:00
README.rst Provide usage help even if not in Git directory 2013-05-28 16:15:26 -07:00
setup.py Align to OpenStack Hacking guidelines. 2013-04-04 16:22:14 -07:00
tox.ini Add venv testenv to tox.ini. 2013-04-05 13:45:29 -07:00

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

git-review, by default, looks for a git remote called gerrit, and submits 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.

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)

Notes

  • Username not required because it is requested on first run
  • Unlike git config files there cannot be any whitespace before the name of the variable.
  • git-review will create a gerrit remote upon first run

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

Contributing

To get the latest code, see: https://github.com/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