- Make changes to existing file X.
- Create a revision ("diff A").
- Revert changes to file X.
- (Possibly rebase here, see below.)
- Update the revision ("diff B").
- Compare B against A in the web UI.
- We want to show that the change made to X by diff A was reverted by diff B.
- We don't have the new, plain text of the file in diff B.
- We show A's change against A's base as a proxy for reverting the change to A.
- If a rebase occurred where noted above, this change is wrong. We should explain what we're showing more clearly, particularly if we know the diffs have different base revisions.
- The behavior of "Show Raw File" is wrong; it downloads un-flipped text from diff A. At a minimum, it should be flipped, but this behavior is probably questionable in general.