4 ms·
Gerrit is a Google-built tool for code review that has UX similar to their internal code review tool Critique. I prefer to use Gerrit because, frankly, GitHub c
by tylerhou 3y ago
Gerrit is a Google-built tool for code review that has UX similar to their internal code review tool Critique. I prefer to use Gerrit because, frankly, GitHub code review is awful.
1. As an author, responding to review feedback is a back-and-forth between my editor and the code review tool. I tend to write responses to comments while I edit code. When I'm satisfied and I've pushed my new code, I want to send all of the responses at once -- especially if two responses depend on each other. GitHub doesn't let me draft responses and then send all (unless I let the responses hang in the HTML input, which is risky).
2. On GitHub, there is no great way to update a PR with changes. Yes, I could push a new commit to the branch. But then I need to squash commits (I don't want the "bad" commits to land in main). When GitHub squashes commits, it concatenates the commit messages which is NOT what I want. (I care about my commit messages being precise and accurate.) I also can't reword my original commit message. So I guess I have to force push. But this makes it harder for collaborators to understand what has changed because GitHub garbage-collects old commits; sometimes I get the message that the old commit can't be found. On Gerrit, I (non-force) push to a "magic" ref which updates the PR for me.
3. As a code reviewer, it's really hard for me to understand what the PR author has changed since the last review. I think part of this is that by default GitHub shows the thread for a PR instead of the code. The thread view has a bunch of whitespace that makes it difficult to concisely understand what has changed. For an interface I use regularly, I really want a condensed view. Gerrit: https://chromium-review.googlesource.com/c/chromium/src/+/4658680 https://chromium-review.googlesource.com/c/chromium/src/+/46...
4. Finally, Gerrit has a nice interface (like Critique) that concisely shows the PR history and what each individual is working on. (Here's a person picked randomly from Chromium code review: https://chromium-review.googlesource.com/q/owner:katzz@google.com https://chromium-review.googlesource.com/q/owner:katzz@googl...). It's really useful for understanding what changes were made/are in progress. Again, GitHub's UI has so much whitespace that is definitely prettier but not useful for a tool that should help my productivity, not hurt it.
- madeofpalk 3y agoIt doesn’t help with any of the other comments, but doesn’t GitHub let to customise the merge commit message, even when you squash-and-merge?
- tylerhou 3y agoThe company I work at has a merge queue bot that enforces that CI passes after every merge. Only the bot is allowed to merge main. So, not being able to customize the squashed message is also an issue with our tooling.
- codeapprove 3y agoGitHub definitely does support (1)! You just comment and click “add to review” as you go and then submit them all together at the end. It’s been the default for a while now. For (2) you definitely want Gerrit. For major improvements on (1), (3), and (4) you might like https://codeapprove.com https://codeapprove.com which sits on top of GitHub and attempts to solve your pain points. Obviously I am biased!