There are various ways to revert a revision. It would be useful to be able to detect when revisions have occurred and surface this in things like the recent changes feed. One use case is to detect edit wars in the trending service that is currently be worked on.
It seems we can detect reverts occurring (in Echo) so there must be a way to encapsulate this logic.
Manual reverts are out of scope for the purpose of this task (EDIT: Other teams may want this, though)
Tentative list of non-manual scenarios to handle:
a. Edit E-1 is made, edit U-1 undoes it without intervening changes (no conflict resolution or manual edit). E-1 is Reverted, U-1 is a Revert
b. Edit E-1 is made, edit RO-1 undos it. E-1 is Reverted, RO-1 is a Revert.
c. Edit E-1 is made, unrelated E-2 is made, edit U-1 undoes E-1 (intervening change, conflict resolution, no manual edit). E-1 is Reverted, U-1 is a Revert (even though U-1 does not match any prior revision), E-2 is neither.
d. Edit E-1, E-2, and E-3 are made by the same user, edit RO-1 undoes all. E-1, E-2, and E-3 are all Reverted, RO-1 is a Revert.
Manual scenarios (TBD if we want to handle):
e. Base is B-1. Edit E-1 is made, manual edit M-1 (made without undo or rollback) sets it back to B-1 text. It's an exact revert, but not using tools. E-1 is Reverted, M-1 is a Revert.
f. Base is B-1. Edit E-1 and E-2 are made. Manual edit M-1 sets it back to B-1 text. It's an exact multi-revision revert, not using core functionality (though it might use a user script). E-1 and E-2 are Reverted, M-1 is a Revert.