NAME
git-gerrit - Git extension to implement a Gerrit workflow
DESCRIPTION
WARNING: THIS IS STILL BETA CODE.
Git-gerrit is a Git extension to manage changes using Gerrit Code Review.
Git-gerrit offers a rich set of sub-commands to make it easy to create, query, amend, review, and submit changes to Gerrit, making it possible to interact with it through the command-line, avoiding its web interface most of the time and improving your efficiency. The goal is to make Gerrit's review process feel like a natural extension of Git.
INSTALLATION
Make sure you have at least Perl 5.10 installed. Check this with:
perl -v
Then, you should install the Git::Gerrit distribution from CPAN. You can do it manually or via one of these commands:
cpanm Git::Gerrit
cpan Git::Gerrit
Both commands should take care of non-core Perl dependencies for you.
Git-gerrit's full documentation can be read by typing
perldoc git-gerrit
ALTERNATIVES
There are some alternatives to git-gerrit, other Git extensions to make it easier to interact with Gerrit. The three mentioned below are the most well known. All of them use Gerrit's mature and simple SSH API while git-gerrit's distinguishes from them in that it uses Gerrit's newer and more comprehensive REST API.
-
Being the original inspiration for git-gerrit, git-review is a mature tool that's used by some very well known projects, such as OpenStack, MediaWiki, and LibreOffice.
-
Simpler than git-review, git-change is better documented and has the best name of all. From it, git-gerrit took the change-branch concept.
-
A very simple tool to query Gerrit and make it easier to push changes.
TODO
An incomplete list of things to do in random order:
Document, document, document, ...
Test, test, test, ...
checkout CHANGE.patchsetNumber
Allow for the checkout of a specific patchset of a change.
implement 'cherrypick'
implement 'diff'
implement the '--dry-run' option
implement 'log'
implement extensibility by plugins
An example of a useful plugin would be to integrate change management with JIRA or other ticketing systems. Something like this.
Another one would be to invite reviewers based on the history of the files/lines touched by the change.
implement a 'purge' command to get rid of merged/abandoned change branches
implement a bash completion script
support named-queries via git-gerrit.query configuration. This idea comes from querrit shortcuts.
implement 'git gerrit checkout topic'
COPYRIGHT
Copyright (c) 2012 by CPqD (http://www.cpqd.com.br/)
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.