Introducing Commit Browser, a code review tool for people who read a lot of code (or wish they did)
By Bill Harding at 5:24pm on July 8, 2019
Another week, another GitClear improvement for those who read code. We're calling this one "Commit Browser." If you're a customer, it's already available after you login. 🎉
The full "Commit Browse" experience is depicted in the first picture here. It starts with a "bubble graph" of all recent commits by committer. It then continues with details about a particular commit group of five commits that the user had clicked on:
There's a lot going on here, but hopefully it feels intuitive? Let's briefly review the highlights from this page, starting with the bubble graph:
The bubbles at the top offer context of which commits were already reviewed (the darker bubbles), which are pending review (the lighter bubble color), and which are actively being reviewed (the white+outlined bubbles). Each color corresponds to a committer.
Next up is the basic info about the commit or commit group:
You can expand the commit group if you want details of all the commits contained herein:
A favorite part of the page is the code categories:
My weekend project was to train GitClear to be able to automatically detect about 100 categories of code via their path name. Basic types of code categories are simply the file type (e.g., Rust, Swift). More interesting code categories recognize the context of the project, like Rails Models (also a full suite of Django categories). This means that if you're a customer and you didn't already set up your own code categories, good news: they're now set up for you. 💫 You can change, refine, or remove them if they're not to your tastes (including customizing the icon).
Code Categories provide a very quick way for regular code reviewers to decide whether to proceed in depth with a commit review. If you don't care about changes to, say, CSS or Libraries, then you don't have to dig any deeper into the content of the changes. You can just scroll past the condensed file list and the commit group will be marked "reviewed." Speaking of which:
As you might imagine, any of these files (individually or as a group) can be expanded inline to show their contents. Rich comment dialog to be online shortly.
The Point of Commit Browser
As a developer, I've spent more time polishing this feature than any other I've built in the past couple years. This indulgence was permitted because our market research suggests GitClear's Commit Browser compares favorably to the best commit review tools available. Since we have an opportunity to be the best, it's fun to probe how far we can push that. As a developer (and occasional Lead Developer/CTO), I've always wanted something like a map of all the commit activity on my team/in the company. If it's going to work for busy people, it has to be visceral. It isn't visceral to look at 100 lines of commit messages, as current git providers offer. This snippet of React activity from the past week is more what we're after:
We want to hover on a commit and see the Jira ticket or Github issue it resolves (here, issue #16054). If I'm his manager, I want others to be aware that Dominic is pulling a heavy load on the dev side (note the prevalence of his red bubbles), and make sure he doesn't get dragged into non-essential meetings. If I'm a junior developer on Dominic's team, I want to understand what tools and tactics Dominic is using to maintain this velocity. If I'm a Senior Developer on his team, I want to keep abreast of the changes he's making so I understand how our project's architecture is evolving.
Of great importance to efficient code review is maintaining orientation when browsing between commits. Commit Browser achieves this by keeping the bubble graph omnipresent, to serve as your "map" of commit activity. Visiting commit groups is like visiting points on a map. Each commit you visit is demarcated as such on the "map," so you know you needn't return to it (unless flagged). Less context switching = more efficiency.
Hope you enjoy it. This is only one of several features we've launched over the past month. We're finally getting to the backlog of writing about all new stuff, so stay tuned for more. 🛵