Design discovery for file tree in merge requests

Small code changes < 100 lines total can touch 10-20 files including tests, which can be hard to review as a page of diffs requiring me to scroll up and down. It becomes exponentially harder as the change grows larger. There are a few reasons it is hard not to get lost even in small changes:

  • location of changes relative to project structure is hard to understand: I don't think of the project as an alphabetically sorted list of files but a tree that shows structure

  • location of change relative to other files in the change: I don't know many files I have reviewed and how many more there are to go, besides trying to use the browser scroll bar to gauge progress

  • switching between files: I need to be able to jump between files to compare a new function added in one place, and how it is used elsewhere in the change.

The proposal to add a file browser that is always visible side by side with the changes could help solve these problems.

Phabricator Atlassian Stash gitlabtree Cimpress Chrome extension
file-treeview bitbucket screenshot unnamed

Proposal

  • File tree should be hidden by default, and can be shown/hidden by the user
  • File tree should only show changed files

Links / references