Multi-File Diff #1689
Description
We're accumulating several places where we have a need to present a diff that spans multiple files in a single view, a la the "files changed" tab on a GitHub pull request:
- The pull request details item proposed by the RFC in RFC for Pull Request Review #1706.
- The CommitPaneItem proposed in Commit pane item #1655.
The easiest place to introduce this is by modifying the FilePatchItem
to display diffs for multiple files at once when you cmd- or ctrl-click multiple files in the unstaged or staged changes lists in the git tab, so let's use that as our first use case.
We can't really start building this until the FilePatchItem is revamped in #1512, but let's start talking about what the design for a multi-file diff view should look like, so we can hit the ground running once it lands 🐎 .
Essentially what we need to design is a re-usable React component that:
- Shows the list of files contained in a multi-file diff.
- Shows the combined diff, with some kind of prominent divider between each file's portions of the diff.
- Makes it easy to jump quickly to a specific file you care about, or back to the file list to get to another file.
- Makes it apparent which file a part of a long diff belongs to, so you don't lose track of what file you're looking at if its diff is larger than you can fit in the pane at once.
/cc @annthurium, @kuychaco, and @simurai for input on what this should look like and how it should behave 😄