[openstack-dev] Announcing Gertty 1.0.0: A console interface to Gerrit

Monty Taylor mordred at inaugust.com
Thu Sep 4 23:51:10 UTC 2014


On 09/04/2014 04:17 PM, James E. Blair wrote:
> Announcing Gertty 1.0.0
>
> Gertty is a console-based interface to the Gerrit Code Review system.
>
> If that doesn't sound interesting to you, then just skip right on to
> the next message.  This mailing list gets a lot of traffic, and it's
> going to take you a while to read it all in that web browser you're
> using.
>
> Gertty was written by and for coremudgeons.  But it's not just because
> we think mutt is the apex of user interface design.
>
> We write code in a terminal.  We read logs in a terminal.  We debug code
> in a terminal.  We commit in a terminal.  You know what's next.
>
> This is why I wrote Gertty:
>
>   * Workflow -- the interface is designed to support a workflow similar
>     to reading network news or mail.  In particular, it is designed to
>     deal with a large number of review requests across a large number
>     of projects.
>
>   * Offline Use -- Gertty syncs information about changes in subscribed
>     projects to a local database and local git repos.  All review
>     operations are performed against that database and then synced back
>     to Gerrit.
>
>   * Speed -- user actions modify locally cached content and need not
>     wait for server interaction.
>
>   * Convenience -- because Gertty downloads all changes to local git
>     repos, a single command instructs it to checkout a change into that
>     repo for detailed examination or testing of larger changes.
>
>   * Information Architecture -- in a console environment, Gertty can
>     display information to reviewers in a more compact and relevant
>     way.
>
>   * Colors -- I think ANSI escape sequences are a neat idea.
>
> Here are some reasons you may want to use Gertty:
>
>   * Single page diff -- when you look at a diff, all of the files are
>     displayed on the same screen making it easier to see the full
>     context of a change as you scroll effortlessly around the files
>     that comprise it.  This may be the most requested feature in
>     Gerrit.  It was harder to make Gertty show only only one file than
>     it was to do all of them so that's what we have.  You still get the
>     choice of side-by-side or unified diff, color coding, inline
>     comments, and intra-line diffs.
>
>   * The checkout and cherry-pick commands -- Gertty works directly on
>     your local git repos, even the same ones you hack on.  It doesn't
>     change them unless you ask it to, so normally you don't notice it's
>     there, but with a simple command you can tell Gertty to check out a
>     change into your working tree, or cherry-pick a bunch of changes
>     onto a branch to build up a new patch series.  It's like "git
>     review -d" if you've ever used it, but instead of typing "git
>     review -d what-was-that-change-number-again?" you type "c".
>
>   * Your home address is seat 7A (or especially if it's 1A) -- Gertty
>     works seamlessly online or offline so you can review changes while
>     you're flying to your 15th mid-cycle meetup.  Gertty syncs all of
>     the open changes for subscribed projects to a local database and
>     performs all of its operations there.  When it's able to connect to
>     Gerrit, it uploads your reviews instantly.  When it's unable, they
>     are queued for the next time you are online.  It handles the
>     transition between online and offline effortlessly.  If your
>     Internet connection is slow or unreliable, Gertty helps with that
>     too.
>
>   * You review a lot of changes -- Gertty is fast.  All of the typical
>     review operations are performed against the local database or the
>     local git repos.  Gertty can review changes as fast as you can.  It
>     has commands to instantly navigate from change to change, and
>     shortcuts to leave votes on a change with a single keypress.
>
>   * You are particular about the changes you review -- Gertty lets you
>     subscribe to projects, and then displays each of those projects
>     along with the number of open changes and changes you have not
>     reviewed.  Open up those projects like you would a newsgroup or
>     email folder, and scroll down the list of changes.  If you don't
>     have anything to say about a change but want to see it again the
>     next time it's updated, just hit a key to mark it reviewed.  If you
>     don't want to see a change ever again, hit a different key to kill
>     it.  Gertty helps you review all of the changes you want to review,
>     and none of the changes you don't.
>
>   * Radical customization -- The queries that Gertty uses by default
>     can be customized.  It uses the same search syntax as Gerrit and
>     support most of its operators.  It has user-defined dashboards that
>     can be bound to any key.  In fact, any command can be bound to any
>     key.  The color palette can be customized.  You spend a lot of time
>     reviewing changes, you should be comfortable.
>
>   * Your terminal is an actual terminal -- Gertty works just fine in 80
>     columns, but it is also happy to spread out into hundreds of
>     columns for ideal side-by-side diffing.
>
>   * Colors -- you think ANSI escape sequences are a neat idea.
>
> If you're ready to give it a shot, here's what to do:
>
>    pip install gertty
>    wget https://git.openstack.org/cgit/stackforge/gertty/plain/examples/openstack-gertty.yaml -O ~/.gertty.yaml
>    # edit ~/.gertty.yaml and update anything that says "CHANGEME"
>    gertty
>
> It will walk you through what to do next.  For help on any screen, hit
> F1 or "?".
>
> For more information on installation or usage, see the README here:
> https://pypi.python.org/pypi/gertty

I, for one, welcome our new gertty overlords.

As an early pre-release user who also sits on aeroplanes a lot, I have 
found gertty to be a MASSIVE productivity increase. I cannot possibly 
recommend it highly enough.

Thank you for your work Jim!

Monty




More information about the OpenStack-dev mailing list