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:
* Edit E1 is made, edit U1 undoes it without intervening changes (no conflict resolution or manual edit). E1 is Reverted, U1 is a Revert
* Edit E1 is made, edit RO1 undos it. E1 is Reverted, RO1 is a Revert.
* Edit E1 is made, unrelated E2 is made, edit U1 undoes E1 (intervening change, conflict resolution, no manual edit). E1 is Reverted, U1 is a Revert (even though U1 does not match any prior revision), E2 is neither.
* Edit E1, E2, and E3 are made by the same user, edit RO1 undoes all. E1, E2, and E3 are all Reverted, RO1 is a Revert.
Manual scenarios (TBD if we want to handle):
* Base is B1. Edit E1 is made, manual edit M1 (made without undo or rollback) sets it back to B1 text. It's an exact revert, but not using tools. E1 is Reverted, M1 is a Revert.
* Base is B1. Edit E1 and E2 are made. Manual edit M1 sets it back to B1 text. It's an exact multi-revision revert, not using core functionality (though it might use a user script). E1 and E2 are Reverted, M1 is a Revert.