Keep module boundaries explicit and enforceable.
software architecture
Only the most recent Revisions are kept. Restoring one saves its content again as the newest.