Tagged with OpenStack

Gerrit Patch Review From The Command Line

OpenStack Nova switched from bzr and launchpad to github and gerrit on Friday. While I'm delighted the project is using git now, I've always found the gerrit UI to be a bit of a pain.

On IRC, Monty Taylor mentioned the gerrit command line interface which looked fairly interesting. Sure enough, you can actually review and approve a patch using this without ever touching the web UI. Below is an example of reviewing a Glance patch, but the same thing would work for Nova.

First, you obviously need to clone the repo:

$> git clone git://github.com/openstack/glance.git
$> cd glance

To make life a little easier, you can add a host alias to your SSH config:

$> cat >> ~/.ssh/config <<EOF
Host review
  Hostname review.openstack.org
  Port 29418
  User markmc
EOF

Then add the gerrit server as a git remote:

$> git remote add -f gerrit ssh://markmc@review/openstack/glance.git

Okay, now browse the patches needing review:

$> ssh review gerrit query status:open project:openstack/glance | less

Once you've picked a patch, take it's Change-Id: and look at its patch sets and reviews:

$> ssh review gerrit query status:open project:openstack/glance   
        change:I27bb6b3951422ad32e5e0225765b1056c5b3ffc5   
        --current-patch-set --all-approvals | less

Then, using the 'ref' in the output, you can fetch the patches into your repo and review them:

$> git fetch gerrit refs/changes/36/636/2
$> git checkout -b git-authors FETCH_HEAD

Once you're ready to submit your review, you can do:

$> git checkout master
$> git branch -D git-authors
$> ssh review gerrit review --code-review +1 -m "'Looks good to me.'" cd9b3a0f2fb91d0d01606ef4bbd90cf8f29267da

That's all pretty neat, but I'm missing how to go about doing a detailed review with comments inline with quoted sections of code. Perhaps if 'gerrit review' could take the review comments over stdin?

Tagged ,

Our Bizarre Posting Conventions

I've been around open source mailing lists for so long now that I tend to forget that our conventions around sending plain text emails, quoting replies, threading, etc. aren't necessarily obvious to everyone out there.

That's especially true for some of the folks working on RHEV-M, many of whom have come from a Windows development background. I eventually realized that saying "just do what everyone else does" wasn't really good enough and spent some time documenting what all those little conventions are.

I've posted some guidelines to the rhevm-api wiki. What am I missing?

Tagged ,