=head1 NAME git-gerrit - Git extension to implement a Gerrit workflow =head1 DESCRIPTION WARNING: THIS IS STILL BETA CODE. Git-gerrit is a Git extension to manage changes using . 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. =head1 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 L. 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. To read this documentation you can type perldoc git-gerrit =head1 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. =over =item * L 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. =item * L 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. =item * L A very simple tool to query Gerrit and make it easier to push changes. =back =head1 TODO An incomplete list of things to do in random order: =over =item * Document, document, document, ... =item * Test, test, test, ... =item * checkout CHANGE.patchsetNumber Allow for the checkout of a specific patchset of a change. =item * implement 'cherrypick' =item * implement 'diff' =item * implement the '--dry-run' option =item * implement 'log' =item * implement extensibility by plugins An example of a useful plugin would be to integrate change management with JIRA or other ticketing systems. Something like L. Another one would be to invite reviewers based on the history of the files/lines touched by the change. =item * implement a 'purge' command to get rid of merged/abandoned change branches =item * implement a bash completion script =item * support named-queries via git-gerrit.query configuration. This idea comes from L shortcuts. =item * implement 'git gerrit checkout topic' =back =head1 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.