Gerrit for Core-Devs

There have been a few questions and potential misunderstandings I’m going to try to address here. I’ll update this post if new stuff comes up.

  • Getting the foo Or: How do I become a Core-Dev on Gerrit?
    Simple: You register with your GitHub or Google account, then you ask any other core dev to add you to the group. At least Bo “zlin” Ørsted Andresen and I know how to do it and every member has the necessary privileges.
  • Reviewing Or: +1+1 != +2
    Every registered user can comment and/or -1/+1 a change. This is an indication said user has reviewed the patch and, ideally, tested it. It’s basically only an opinion, though.
    Only Core-Devs can +2 a change. This means they’ve reviewed and tested that change and are approving it. The change then will get merged and pushed.
    It’s important to remember, though, that +1’s do NOT add up. You can +1 a change a hundred times but it will still need one bold man (or woman) to +2 it.
    Important as well, don’t forget to press the “Submit” button if you want to get a change merged.
  • What about testing (or the lack of)?
    Everyone who +2’s a change at least (ideally, +1 would indicate you tested the thing, too!) is expected to have actually tested it. If you +2 it but didn’t test it, we’re going to slowly roast you over a scented candle. 
  • What’s the easiest way to test a patch?
    Use dev-scm/gertty.

    (Previsouly: I look at the patch, at the “Downloads” line, I click on “Patch” and then click on the small clipboard icon next to the git fetch comand. That adds said line to your clipboard. Next, I cd into the respective repository, paste the line we just copied and append “| git am”. That’s it, patch applied, now test it!)

  • Merging & pushing (no, not like that, you pervert!)
    Gerrit now pushes merged changes directly to our repositories. This means, once you +2 and submit a change (cf. first point), you push it.
  • Command line tricks or How do I…
    … most easily review a change?git review -d -t <change number, e. g. 202>

    … merge a boat-load of patches I reviewed and tested at once?

    On your branch with the changes applied: ssh -p 29418 <username> gerrit review –code-review +2 –submit $(git rev-list gerrit/master..HEAD)

    … query for a specific change?

    ssh -p 29418 <username> — gerrit query –comments change:212

    …  get a list of all open changes?

    ssh -p 29418 <username> — gerrit query status:open (add a “project” parameter if you want only changes for a certain repository, e. g. “project:arbor”)

    … add a comment from the command line?

    ssh -p 29418 <username> — gerrit review -m “\”At the very least this commit message should explain why we have to put PWD in PYTHONPATH which can’t be quoted properly… But other than that, seems sensible at least for now.\”” $changeid

I am and have been working on quite a few F/OSS projects:
  • Exherbo (Nick: Philantrop)
  • Gentoo (Nick: Philantrop)
  • Calibre plugin iOS reader applications
  • Calibre plugin Marvin XD
  • chroot-manager
  • stuff on github
  • Lots of other projects
  • If you like my work, feel free to donate. 🙂

    Leave a Reply