Improved blame history navigation

When debugging a regression or trying to understand how a piece of code came to have its current shape, a common workflow is to use the "blame" view of a file to understand how changes have been made over time.

In active codebases though, tracing individual commits backwards in time was painstaking and often involved repeating 5 or 6 steps, clicks, and pageviews over and over again. We fixed this by building a new navigation feature for blame view—which was small in terms of surface area, but an incredibly powerful workflow improvement to the overall process.

Note: Read the related announcement post on the GitHub blog.
Improved blame/reblame view
This interaction in the blame view lets you jump straight to the prior commit that modified that line of code.

Instead of clicking on the commit for the line in question, identifying that commit’s parent, browsing to that version of the codebase, finding the file in question again, and then scrolling back to the same part of the file again—clicking on the small button we added next to each chunk of code lets you skip straight to the prior blame view you want, just a single step!

When designing this feature, we didn’t want to just introduce more complexity to an already complex interface, so we actually started with an audit of all the information we were showing for this view within the codebase, and managed to cut it to just the critical pieces of information. As a result of streamlining and reducing clutter first, we had way more space to work with to introduce this functionality, all while ensuring the overall change felt like a focused simplification.

Coby Chapple (@cobyism)

@cobyism—a.k.a. Coby Chapple is an autodidact, systems thinker, product architect, pixel technician, full-stack algorithmagician, multi-media maker, cryptography geek, aspiring linguist, and generalist Designerd™ extraordinaire. Read more »